关于正则表达式中的元字符的过滤

来源:互联网 发布:公司域名怎么申请 编辑:程序博客网 时间:2024/04/30 13:53

java使用String.replaceAll方法其实底层使用的也是正则,而若替换的目标字符串是经过用户输入,或对用户输入加以拼装的,可能需要过滤

正则的元字符防止报错

解决方法如下:

-------------------------------------------------------------------------------------网上转载的资料------------------------------------------------------------------------------------

转义字符 \Q...\E

使用 \Q 开始,\E 结束,可使中间的标点符号失去特殊意义,将中间的字符作为普通字符。

使用 \U 开始,\E 结束,除了具有 \Q...\E 相同的功能外,还将中间的小写字母转换成大写。在大小写敏感模式下,只能与大写文本匹配。

使用 \L 开始,\E 结束,除了具有 \Q...\E 相同的功能外,还将中间的大写字母转换成小写。在大小写敏感模式下,只能与小写文本匹配。


说明

\Q...\E 适合用于:表达式中需要比较长的普通文本,而其中包含了特殊符号。


举例

表达式

说明

\Q(a+b)*3\E

可匹配文本 "(a+b)*3"。

\(a\+b\)\*3

如果不使用 \Q...\E 进行转义,则对每个特殊符号进行转义。


0 0