2013年3月24日 星期日

java replaceAll() - 關於反斜線的小技巧


如果要用 java replaceAll() 這函數替換反斜線
一個反斜線 "\" 等於 "\\\\"四個反斜線,
例如
要將str1和str2的反斜線取代

str1="aa\bbb"; str2="aa'bbb";
str1="aa\\bbb";str2="aa\'bbb";

要這樣寫
str1 = str1.replaceAll("\\\\", "\\\\\\\\");
str2 = str2.replaceAll("'", "\\\\'");

為什麼呢? 因為JAVA將"\\\\"解析成"\\"給正規表達式,正規表達式再將"\\"解析成"\"
所以一個反斜線,在正規表達式要寫成四個

沒有留言:

張貼留言