gpt4 book ai didi

java - IntelliJ 说 "\\"(匹配单个反斜杠)是 Pattern.compile 的非法/不受支持的转义序列

转载 作者:行者123 更新时间:2023-12-01 10:02:22 24 4
gpt4 key购买 nike

以下模式编译表达式在 IntelliJ 中会出错,即使该表达式在 Java (1.8) 中编译并运行良好:

Pattern.compile("\\", Pattern.LITERAL);

我正在使用以下代码来逃避 \ 的所有出现在带有 double 的字符串中 \\ , 像这样:
private final static Pattern BACKSLASH_PATTERN = Pattern.compile("\\", Pattern.LITERAL);
private final static String BACKSLASH_REPLACE = Matcher.quoteReplacement("\\\\");

private String escapeBackslashes(final String s) {
return BACKSLASH_PATTERN.matcher(s).replaceAll(BACKSLASH_REPLACE);
}

使用时 s.replace("\\", "\\\\")不过,IntelliJ 并没有提示,但出于性能原因(要处理 100 MB 的数据),我需要使用预编译模式。

可能是一个错误,如 IntelliJ says \b (backspace) is an illegal escape sequence inside a string literal. Why? ?

最佳答案

你在那里有双重转义问题。 Java 需要两个反斜杠\才能让一个反斜杠出现在您的字符串中。正则表达式也有反斜杠转义,这样正则表达式中的两个反斜杠变成了一个反斜杠以进行模式匹配。

尝试转义两次:

Pattern.compile("\\\\", Pattern.LITERAL);

这将模式作为 '\' 在正则表达式中匹配单个退格。

关于java - IntelliJ 说 "\\"(匹配单个反斜杠)是 Pattern.compile 的非法/不受支持的转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53496078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com