我只想使用正则表达式来匹配反斜杠(\
)字符,但它会抛出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)
最佳答案
您只是尝试仅使用正则表达式转义字符\
(这就是引发java.util.regex.PatternSyntaxException:索引1附近出现意外内部错误\
的原因) >)
顺便说一下,Java 中的斜杠 \
也是用于标识转义序列开头的字符 ( java escape characters ),并且对编译器具有特殊含义。因此,如果您想在字符串中写入斜杠,则必须将其加倍(“\\”
)。
如果你想编写一个搜索斜杠的正则表达式,你必须转义它,并且在 Java 字符串中翻译正则表达式,你必须再次将斜杠加倍。
因此斜杠的正则表达式变为 "\\\\"
关于java - : Pattern pattern = Pattern. 编译 ("\\"出了什么问题);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44407054/