RegEx导致错误?

时间:2011-10-18 14:59:24

标签: java regex

我正在使用一个系统,我需要输入数百个RegEx表达式。我最近改变了一些事情,并收到以下错误:

  

java.lang.RuntimeException:?+ *在表达式

中没有任何内容

我不知道这意味着什么,并且非常感谢我应该寻找的任何指针来修复它。

非常感谢:)

凯蒂

2 个答案:

答案 0 :(得分:2)

明显的解释是,您有一个以'?''+''*'元字符开头的正则表达式。也许它应该被逃脱。也许你不小心删除了以前被元字符“量化”的东西。

  

我在某些表达式的开头有一个'*' - 那是不是很糟糕?

烨。如果它应该与文字星号字符匹配,则必须以'\'开头才能将其转义。 (正如Felix Kling指出的那样,如果正则表达式嵌入在Java字符串文字中,'\'本身就需要进行转义。)

  

我应该改为'.*'(即点星)吗?

这取决于你希望正则表达式在那一点匹配。 '.*'表示“急切地匹配零个或多个字符”。如果这就是你的意思,那就是你应该使用的。

答案 1 :(得分:0)

这意味着你有量词(+,?或*),不能量化任何东西。我的猜测是你在尝试匹配时可能忘记逃脱其中一个角色(\ n)。