如何编写一个正则表达式来匹配这个 \"
(一个反斜杠然后一个引号)?假设我有这样一个字符串:
<a href=\"google.com\"> click to search </a>
我需要将所有 \"
替换为 "
,因此结果如下所示:
<a href="google.com"> click to search </a>
这个不起作用: str.replaceAll("\\\"", "\"")
因为它只匹配引号。不确定如何绕过反斜杠。我本可以先删除反斜杠,但我的字符串中还有其他反斜杠。
原文由 Simo 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您 不需要任何正则表达式机制,如预定义字符类 \d、量词等 而不是
replaceAll
期望正则表达式使用replace
期望文字这两种方法都将替换 所有 出现的目标,但
replace
将逐字处理目标。但是如果你真的 必须 使用你正在寻找的正则表达式
\
是正则表达式中的特殊字符(例如用于创建\d
- 表示数字的字符类)。要使正则表达式将\
视为普通字符,您需要放置另一个\
在它之前关闭其特殊含义(您需要将其转义)。所以我们试图创建的正则表达式是\\
。但是要创建代表文本的字符串文字
\\
这样你就可以将它传递给正则表达式引擎,你需要将它写成四个\
("\\\\"
), 因为\
),---
也是字符串文字中的特殊字符(使用"..."
编写的部分代码)因为它可以用作例如\t
这就是为什么您还需要在那里转义\
的原因。简而言之,您需要转义
\
两次:\\
"\\\\"