2017-02-28 164 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」,「」);它取代了兩個X之間的所有內容。 – Avaneesh

回答

0

試試這個:

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

這將採取所有其他空白/換行字符的照顧。