2017-08-06 5 views
2

「...」または水平方向の反復記号

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

で文字列を分割しようとしている私が試したとき、私は問題に直面しています:

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

や他の多くをしかし、私は解決策をまだ見つけていません。

私はこの質問は非常に簡単だと知っていますが、誰かがどのように私はそれを動作させるべきか説明することができます私は幸せになります。

+1

「text.split( "\\。{2、} | ...") 'を試してください。 – saka1029

答えて

4

3つのドットを一致させる正規表現は、\\.{3}または\\.\\.\\.または[.][.][.]または\\Q...\\Eです。

[\\...]\\.は、文字クラス内の繰り返し文字が1文字として扱われるため、1つのドットに一致します。

省略記号は異なる文字です。それはありませんエスケープと直接一致させることができるように、それは、正規表現言語ではメタ文字ではありません。

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

または '.split(" ... | \\ Q ... \\ E ")' – Bohemian

+0

@Bohemianありがとうございました - 私は、正規表現のブロックを "卸売"から逃れる能力について完全に忘れていました。 – dasblinkenlight

0

正規表現の複数のドットのために次のようになります。

(\.)* 

私が正しい覚えていれば、Javaはこのような何かを必要とします:

(\\.)* 

編集:トリプルドットのみを求めたことに気づいた。正しい答えがあるので、私はちょうどそのためにこれをここに残すつもりです。

関連する問題