java - : Pattern pattern = Pattern. 编译 ("\\"出了什么问题);

标签 java regex

我只想使用正则表达式来匹配反斜杠(\)字符,但它会抛出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/

相关文章:

java - 在 Android 应用程序的标签中解析 HTML 中的 JSON

regex - 在 SED 中使用变量

javascript - 如何制作一个正则表达式,将标签 {{name}} 替换为以这种方式命名的类的属性值

java - 如何按映射到另一个实体的属性进行分组

java - 使用 OR 测试 DynaActionForm 属性是否不为空

java - 使用 Java 从文件中读取值

java - Dozer org.apache.commons.lang.ClassUtils.getClass(Ljava/lang/String;) 错误

c# - 如何使用 c sharp 计算每个 java 类的方法数?

regex - R:回归匹配特定模式的所有变量

python - 使用 Python 和正则表达式解析 windows 命令结果