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
