java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^
程序员文章站
2022-06-05 17:27:13
...
最近在使用 String.replaceAll() 方法时出现了如下错误:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.compile(Pattern.java:1702)
at java.util.regex.Pattern.<init>(Pattern.java:1351)
at java.util.regex.Pattern.compile(Pattern.java:1028)
at java.lang.String.replaceAll(String.java:2223)
......
由报错内容可知,问题出现在反斜杠上。后来查询得知在java中replaceAll,split等方法中的参数都是正则表达式,而 \ 是正则中的关键字 , 如果正则字符中包含 \ 符号,会造成混淆。
接下来简单试验一下,如下图所示,实验目标是将字符串 “aa\bb\cc” 中的 \ 替换成 # ,idea此时已经报错了,如果执行这个方法的话就会出现文章开头提示的错误信息。
接下来稍作修改,可以看到replaceAll方法正常执行完毕。
问题解决方法:
在正则表达式中使用4个\ 匹配字符串中出现的1个 \
上一篇: 【SSH】
下一篇: Maven搭建阿里云镜像
推荐阅读
-
java.util.regex.PatternSyntaxException: Unclosed group near index 1
-
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^
-
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^
-
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^