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