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