Java Regex – Ilegal Repetition字符

我的正则表达式是

(?:--|#|\/\*|{) 

当我使用Java中的Pattern.complie()编译它时,我得到* 非法重复字符*

我测试了这个正则表达式

 (a|\/\*|b) 

当我编译它时,它显示没有错误。

为什么会这样?

这是因为{ 。 它用于指定重复某事的次数。 例如, x{2,4}将匹配x重复的2( xx ),3( xxx )或4( xxxx )次。

如果你想要正则表达式匹配{ literal它需要被转义:

 (?:--|#|\/\*|\{)