java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠,该怎么解决
博客专区 > Airship 的博客 > 博客详情
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠,该怎么解决
Airship 发表于2年前
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠,该怎么解决
  • 发表于 2年前
  • 阅读 58
  • 收藏 1
  • 点赞 1
  • 评论 0

移动开发云端新模式探索实践 >>>   

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("\\", "\\\\");

就会报正则表达式的错误。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 31
博文 772
码字总数 18996
×
Airship
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: