1. 程式人生 > >java replaceAll() 方法要用 4 個反斜槓,表示一個反斜槓

java replaceAll() 方法要用 4 個反斜槓,表示一個反斜槓

java replaceAll() 方法要用 4 個反斜槓,表示一個反斜槓

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

要想替換成 str1="aa\\bbb";str2="aa\'bbb";

必須這樣替換:

             str1 = str1.replaceAll("\\\\", "\\\\\\\\");
             str2 = str2.replaceAll("'", "\\\\'");

原因如下:

String 的 replaceAll() 方法,實際是採用正則表示式的規則去匹配的,

\\\\   ,java解析為\\交給正則表示式,   正則表示式再經過一次轉換,把\\轉換成為\ 

也就是java裡面要用正則來表示一個\. 必須寫成4個\ 

如果要表示\\,那就要寫8個\


所以如果寫成: str1 = str1.replaceAll("\\", "\\\\");

就會報正則表示式的錯誤。