2017-08-06 58 views
2

我試圖通過拆分字符串時面臨的難題「...」如何分割由多個點或水平省略

String text ="Here…It is safer."; 

我試過的字符串:

String [] output = text.split("[\\...]"); 
String [] output = text.split("\\."); 

和其他許多人,但我還沒有找到解決方案。

我知道這個問題很簡單,但我會很高興如果有人能解釋我該如何讓它工作。

+1

嘗試'text.split(「\\。{2,} | ...」)''。 – saka1029

回答

4

用於匹配三個點的正則表達式是\\.{3}\\.\\.\\.[.][.][.]\\Q...\\E

[\\...]\\.都匹配單個點,因爲字符類中的重複字符被視爲單個字符。

水平省略號是一個不同的字符。這是不是在正則表達式語言的元字符,所以它可以直接與沒有逃脫匹配:

String [] output = text.split("…"); 
+1

或'.split(「... | \\ Q ... \\ E」)' – Bohemian

+0

@Bohemian謝謝 - 我完全忘記了批量轉義塊的能力。 – dasblinkenlight

0

正則表達式爲多個點是:

(\.)* 

如果我記得正確的Java將需要像這樣:

(\\.)* 

編輯:只注意到你只要求三重點。既然已經有了正確的答案,我會在這裏留下以防萬一。