论坛首页 Java企业应用论坛

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

浏览 1363 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-26   最后修改:2011-01-26
在读别人的代码的时候,看到如下一句

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 字符是指特殊字符.


论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics