这个正则表达式有什么问题?

Mos*_*she 5 java regex function

在java中,我试图检测表单的字符串:可选的下划线,大写字母,然后是包含两个参数的大括号.就是这样的事情MAX{1,2} FUNC{3,7} _POW{9,10}

我决定推迟处理这些参数,所以我使用的正则表达式是:

_?[A-Z]+//{.*//}
Run Code Online (Sandbox Code Playgroud)

但是在尝试将其编译为Pattern对象时遇到以下错误:

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 9
_?[A-Z]+//{.*//}
         ^
Run Code Online (Sandbox Code Playgroud)

谁知道问题是什么?

Joh*_*nck 19

您需要转义表达式中的大括号,否则它们将被视为重复运算符.我想你想用\它而不是//.