我正在使用一个系统,我需要输入数百个RegEx表达式。我最近改变了一些事情,并收到以下错误:
java.lang.RuntimeException:?+ *在表达式
中没有任何内容
我不知道这意味着什么,并且非常感谢我应该寻找的任何指针来修复它。
非常感谢:)
凯蒂
答案 0 :(得分:2)
明显的解释是,您有一个以'?'
,'+'
或'*'
元字符开头的正则表达式。也许它应该被逃脱。也许你不小心删除了以前被元字符“量化”的东西。
我在某些表达式的开头有一个
'*'
- 那是不是很糟糕?
烨。如果它应该与文字星号字符匹配,则必须以'\'
开头才能将其转义。 (正如Felix Kling指出的那样,如果正则表达式嵌入在Java字符串文字中,'\'
本身就需要进行转义。)
我应该改为
'.*'
(即点星)吗?
这取决于你希望正则表达式在那一点匹配。 '.*'
表示“急切地匹配零个或多个字符”。如果这就是你的意思,那就是你应该使用的。
答案 1 :(得分:0)
这意味着你有量词(+,?或*),不能量化任何东西。我的猜测是你在尝试匹配时可能忘记逃脱其中一个角色(\ n)。