我使用Java中的regex引擎解析许多txt文件;虽然很多txt文件都没有发生,但会出现以下异常:
Exception in thread "main" java.util.regex.PatternSyntaxException:
Illegal repetition near index 1
b {en}http //fas org/sgp/crs/nuke/rs22542 pdf
在运行时计算的一组字符串上循环获取匹配模式,程序正在使用replaceAll()
从文本中删除每个匹配的模式,但在模式不是普通字符串b {en}http //fas org/sgp/crs/nuke/rs22542 pdf
时失败。
这是什么意思?如何修复它或让编译器忽略此错误?
答案 0 :(得分:3)
replaceAll
正在使用正则表达式语法,而正则表达式{n}
具有特殊含义,即a{3}
代表aaa
的重复。
如果您想简单地替换字符串文字,请使用replace
方法而不是replaceAll
replace
基本上是replaceAll
,但没有正则表达式语法(它自动添加了正则表达式机制的转义)。
您可以在此帖子中找到更多信息:https://stackoverflow.com/a/33444647/1393766