我只想使用正则表达式来匹配反斜杠(\
)字符,但它会抛出PatternSyntaxException
:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at helloworld.HelloWorld.main(HelloWorld.java:20)
答案 0 :(得分:2)
你只是只使用正则表达式转义字符\
来尝试正则表达式(这就是为什么被引发java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \
)
为了清楚起见,顺便说一句,Java中的斜杠\
也是用于标识转义序列(java escape characters)开头的字符,对编译器有特殊意义。因此,如果你想在String中写一个斜杠,你必须加倍它("\\"
)。
如果你想编写一个搜索斜杠的正则表达式,你必须将其转义,并在Java字符串中翻译正则表达式,你必须再次加倍斜杠。
因此斜杠的正则表达式变为"\\\\"