Java Regex - Ilegal Repetition character

2019-03-03 11:04发布

问题:

My regex is

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

When i compile this using Pattern.complie() in java, I am getting *Illegal Repetitive Character *

I tested this regex

(a|\/\*|b)

When i compiled this, It shows no error.

Why does this occur ?

回答1:

It is because of {. It is used to specify how many times something should it be repeated. For instance x{2,4} will match x repeated 2 (xx), 3 (xxx) or 4 (xxxx) times.

If you want regex to match { literal it needs to be escaped:

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