当我尝试将这个“(| {|;)”正则表达式转换为字符串时,Java给了我这个例外:
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 2
( |{|;)
^
我该如何解决?
答案 0 :(得分:5)
错误是{
被视为限制量词的开头(例如{1,2}
)。您需要转义它或在字符类中使用。
根据正则表达式判断 - ( |{|;)
- 问题在于特殊的正则表达式字符处理。由于您要匹配空格,左大括号或分号,建议使用字符类而不是替换组。
所以,使用
([ {;])
字符类是更好的解决方案,因为它涉及更少的回溯。