Java-匹配反斜杠和引号的正则表达式
如何编写一个正则表达式来匹配它\"
(反斜杠然后是引号)?假设我有一个像这样的字符串:
<a href=\"google.com\"> click to search </a>
我需要将所有替换\"
为"
,因此结果如下所示:
<a href="google.com"> click to search </a>
这是行不通的:str.replaceAll("\\\"",
"\"")因为它只匹配引号。不确定如何使用反斜杠。我本可以先删除反斜杠,但字符串中还有其他反斜杠。
回答:
如果你
,而不是replaceAll
其预期正则表达式使用replace
其预计文字
str = str.replace("\\\"","\"");
两种方法都将替换 所有 出现的目标,但是replace
将按字面意义对待目标。
但是如果您真的 使用正则表达式
str = str.replaceAll("\\\\\"", "\"")
\
是正则表达式中的特殊字符(例如,用于创建\d
-代表数字的字符类)。要将正则表达式\
视为普通字符,您需要\
在其前面放置另一个以关闭其特殊含义(您需要对其进行转义)。所以我们试图创建的正则表达式是\\
。
但是要创建表示形式的字符串,\\
以便将其传递给正则表达式引擎,您需要将其编写为四\
("\\\\"
),因为\
它也是String中的特殊字符(例如,可以用作\t
制表符),因此您还需要在两者\
之间进行转义。
换句话说,您需要转义\
两次:
- 一次在正则表达式中
\\
- 然后在字符串中
"\\\\"
以上是 Java-匹配反斜杠和引号的正则表达式 的全部内容, 来源链接: utcz.com/qa/404295.html