2015-11-08 31 views
-4

我用Java中的正则表达式引擎解析很多txt文件;而什么都没有发生与许多txt文件,带有一个后续例外出现:获得java.util.regex.PatternSyntaxException:非法重复

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

您还没有我们显示你的代码,所以很难说具体是什么问题。 –

+3

将'Pattern.quote()'应用于您想要逐字匹配的模式部分。 –

+2

在正则表达式中使用'{n}'来表示重复,比如'a {3}'将匹配'aaa'。正则表达式可能试图告诉你'en'中的'en'是不正确的值。如果我不知道你想要完成什么以及你的代码是什么样的,我无法帮助你解决问题。 – Pshemo

回答

3

replaceAll是使用正则表达式语法和正则表达式{n}具有特殊的意义是一样a{3}重复表示aaa

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

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