`
猪才怪
  • 浏览: 23458 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

关于java中对于‘$’进行正则替换的疑惑

阅读更多
在读别人的代码的时候,看到如下一句

sqlstr = str.replaceAll("\\Q$\\E", "\\\\\\$");


大致查了一下资料:

\Q 在non-word 字符前加上\,直到\E 


这样看来,是想把匹配串中的$符号前面都手动的加上\$,然后再用\\$来替换被匹配串中的$符号....

总的来说,不是很理解,希望大家能够指点一下,谢谢

---------------------


得到某大哥指点了
\Q...\E 适合用于:表达式中需要比较长的普通文本,而其中包含了特殊符号。
  举例
  表达式          说明
   \Q(a+b)*3\E       可匹配文本 "(a+b)*3"。
 \(a\+b\)\*3       如果不使用 \Q...\E 进行转义,则对每个特殊符号进行转义。


看来\Q....\E是在其包含的字符串中的特殊字符前加转义了,原来non-word 字符是指特殊字符.


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics