gpt4 book ai didi

Java - 从文件中转义字符串中的双引号

转载 作者:搜寻专家 更新时间:2023-11-01 01:50:43 25 4
gpt4 key购买 nike

我有来自文件的 html 字符串。我需要转义所有双引号。所以我这样做:

String content=readFile(file.getAbsolutePath(), StandardCharsets.UTF_8);
content=content.replaceAll("\"","\\\"");
System.out.println(content);

但是,双引号没有转义,字符串与 replaceAll 方法之前的字符串相同。当我做的时候

String content=readFile(file.getAbsolutePath(), StandardCharsets.UTF_8);
content=content.replaceAll("\"","^^^");
System.out.println(content);

所有双引号都替换为^^^。

为什么 content.replaceAll("\"","\\\""); 不起作用?

最佳答案

您需要使用 4 个反斜杠来表示替换模式中的一个文字反斜杠:

content=content.replaceAll("\"","\\\\\"");

这里,\\\\ 表示文字 \\" 表示文字 "

更多详情请访问 Java String#replaceAll documentation :

Note that backslashes (\) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string; see Matcher.replaceAll

稍后在 Matcher.replaceAll文档:

Dollar signs may be treated as references to captured subsequences as described above, and backslashes are used to escape literal characters in the replacement string.

另一个有趣的替代品是 replacing quotes with dollar sign : 替换为 "\\$"。 2 个 \ 变成了正则表达式引擎的 1 个文字 \ 并且它转义了用于定义反向引用的特殊字符 $。所以,现在它是替换模式中的文字。

关于Java - 从文件中转义字符串中的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33893701/

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