java.util.regex.PatternSyntaxException:非法重复

时间:2015-11-08 20:03:28

标签: java regex

我使用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时失败。

这是什么意思?如何修复它或让编译器忽略此错误?

1 个答案:

答案 0 :(得分:3)

replaceAll正在使用正则表达式语法,而正则表达式{n}具有特殊含义,即a{3}代表aaa的重复。

如果您想简单地替换字符串文字,请使用replace方法而不是replaceAll replace基本上是replaceAll,但没有正则表达式语法(它自动添加了正则表达式机制的转义)。

您可以在此帖子中找到更多信息:https://stackoverflow.com/a/33444647/1393766