【发布时间】:2018-07-19 08:38:57
【问题描述】:
我正在使用下面的正则表达式字符串将提供的字符串替换为 ****
String output=output.replaceAll("(?<!\\w)(?i)"+requesterView.getFirstname()+"(?!\\w)","****");
上面提供的字符串+91
如果它包含 + 则低于异常
java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 12
(?<!\w)(?i)(+91)(?!\w)
^
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.sequence(Pattern.java:2123)
at java.util.regex.Pattern.expr(Pattern.java:1996)
at java.util.regex.Pattern.group0(Pattern.java:2905)
at java.util.regex.Pattern.sequence(Pattern.java:2051)
at java.util.regex.Pattern.expr(Pattern.java:1996)
at java.util.regex.Pattern.compile(Pattern.java:1696)
at java.util.regex.Pattern.<init>(Pattern.java:1351)
at java.util.regex.Pattern.compile(Pattern.java:1028)
如何解决上述异常?
【问题讨论】:
-
永远不要将未转义的字符串从用户添加到正则表达式!
标签: regex