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


  java.lang.RuntimeException:?+ *在表达式中不包含任何内容


我不知道这意味着什么,并且非常感谢我为解决此问题而寻求的任何建议。

非常感谢 :)

凯蒂

最佳答案

显而易见的解释是,您有一个以'?''+''*'元字符开头的正则表达式。也许应该已经逃脱了。也许您不小心删除了元字符“量化”的前述内容。


  在某些表达式的开头确实有'*'-不好吗?


对。如果该字符与字面上的星号字符匹配,则必须在其前面加上'\'使其转义。 (正如Felix Kling所指出的,如果将正则表达式嵌入Java字符串文字中,则必须对'\'进行转义。)


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


这取决于您当时正则表达式要匹配的内容。 '.*'表示“急于匹配零个或多个字符”。如果这就是您的意思,那就应该使用。

关于java - 由RegEx引起的错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7809369/

10-11 05:04
查看更多