Java处理正则表达式特殊字符转义转正则需要转义字符:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'
异常现象: PatternSyntaxException: Dangling meta. character '*' near index 0
解决⽅法:对特殊字符加\\转义即可。
注意:虽然使⽤[]在部分条件下也可以,但是在对于(、[、{范围边界开始符不匹配的情况下会报如下:
异常现象:PatternSyntaxException: Illegal repetition near index 50
java replace方法Java过滤正则表达式特殊字代码如下(注意:\\需要第⼀个替换,否则replace⽅法替换时会有逻辑bug)
1/**
2    * 转义正则特殊字符($()*+.[]?\^{}
3    * \\需要第⼀个替换,否则replace⽅法替换时会有逻辑bug
4*/
5public static String makeQueryStringAllRegExp(String str) {
6if(StringUtils.isBlank(str)){
7return str;
8        }
9
place("\\", "\\\\").replace("*", "\\*")
11                .replace("+", "\\+").replace("|", "\\|")
12                .replace("{", "\\{").replace("}", "\\}")
13                .replace("(", "\\(").replace(")", "\\)")
14                .replace("^", "\\^").replace("$", "\\$")
15                .replace("[", "\\[").replace("]", "\\]")
16                .replace("?", "\\?").replace(",", "\\,")
17                .replace(".", "\\.").replace("&", "\\&");
18    }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。