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

回到顶部