2017-02-28 5 views
0

次のコードを検討してください。Java String.replaceAll()は改行の前後に置き換えます

String s = "000000Xabcdefgh\nijkX00000000"; 
s = s.replaceAll("X.*X", ""); 
System.out.println(s); 

私はXabcdefgh\nijkXは、空の文字列に置き換えられ得ることを期待したが、途中で改行があるので、何も置き換えませんます。正規表現マッチングが改行で終わるのはなぜですか?正規表現をマッチングするときに、改行を無視するにはどうすればよいですか?

+0

s = s.replaceAll( "X([^ X] *)X"、 "");これは2つのX間のすべてを置き換えます。 – Avaneesh

答えて

0

はこれを試してみてください。

String s = "000000Xabcdefgh\nijkX00000000"; 
s = s.replaceAll("X.*(|\t|\r\n|\r|\n).*X", ""); 
System.out.println(s); 

これは、他のすべての空白/改行文字の世話をします。

関連する問題