我試圖通過拆分字符串時面臨的難題「...」如何分割由多個點或水平省略
String text ="Here…It is safer.";
我試過的字符串:
String [] output = text.split("[\\...]");
String [] output = text.split("\\.");
和其他許多人,但我還沒有找到解決方案。
我知道這個問題很簡單,但我會很高興如果有人能解釋我該如何讓它工作。
我試圖通過拆分字符串時面臨的難題「...」如何分割由多個點或水平省略
String text ="Here…It is safer.";
我試過的字符串:
String [] output = text.split("[\\...]");
String [] output = text.split("\\.");
和其他許多人,但我還沒有找到解決方案。
我知道這個問題很簡單,但我會很高興如果有人能解釋我該如何讓它工作。
用於匹配三個點的正則表達式是\\.{3}
或\\.\\.\\.
或[.][.][.]
或\\Q...\\E
。
[\\...]
和\\.
都匹配單個點,因爲字符類中的重複字符被視爲單個字符。
水平省略號是一個不同的字符。這是不是在正則表達式語言的元字符,所以它可以直接與沒有逃脫匹配:
String [] output = text.split("…");
或'.split(「... | \\ Q ... \\ E」)' – Bohemian
@Bohemian謝謝 - 我完全忘記了批量轉義塊的能力。 – dasblinkenlight
正則表達式爲多個點是:
(\.)*
如果我記得正確的Java將需要像這樣:
(\\.)*
編輯:只注意到你只要求三重點。既然已經有了正確的答案,我會在這裏留下以防萬一。
嘗試'text.split(「\\。{2,} | ...」)''。 – saka1029