我使用的系统需要输入数百个RegEx表达式。我最近做了一些更改,并收到以下错误:
java.lang.RuntimeException:?+ *在表达式中不包含任何内容
我不知道这意味着什么,并且非常感谢我为解决此问题而寻求的任何建议。
非常感谢 :)
凯蒂
最佳答案
显而易见的解释是,您有一个以'?'
,'+'
或'*'
元字符开头的正则表达式。也许应该已经逃脱了。也许您不小心删除了元字符“量化”的前述内容。
在某些表达式的开头确实有'*'
-不好吗?
对。如果该字符与字面上的星号字符匹配,则必须在其前面加上'\'
使其转义。 (正如Felix Kling所指出的,如果将正则表达式嵌入Java字符串文字中,则必须对'\'
进行转义。)
我应该改用'.*'
(即点星)吗?
这取决于您当时正则表达式要匹配的内容。 '.*'
表示“急于匹配零个或多个字符”。如果这就是您的意思,那就应该使用。
关于java - 由RegEx引起的错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7809369/