Java:仅替换完全匹配的URL

时间:2016-12-01 12:44:50

标签: java string replace

我想只替换String中给出的完全匹配的链接。 我的代码如下:

String originalString = "<a target=\"_blank\" href=\"http://example.com/\"><span style=\"font-size: 12px;\">ABC</span></a>"
            + "<a target=\"_blank\" href=\"http://example.com/contact/\"><span style=\"font-size: 12px;\">Contact</span></a>";

String replacedString = originalString.replace("http://example.com/", "link1");
System.out.println("Replaced String:" + replacedString);


replacedString = "<a target="_blank" href="link1"><span style="font-size: 12px;">ABC</span></a><a target="_blank" href="link1contact/"><span style="font-size: 12px;">Contact</span></a>"

requiredString = "<a target="_blank" href="link1"><span style="font-size: 12px;">ABC</span></a><a target="_blank" href="link2"><span style="font-size: 12px;">Contact</span></a>"

我将Output作为replacementString,但必需的Output应该是requiredString。

提前致谢。

3 个答案:

答案 0 :(得分:1)

将网址替换为引号:

String replacedString = originalString.replace("\"http://example.com/\"", "\"link1\"");
replacedString = replacedString.replace("\"http://example.com/contact/\"", "\"link2\"");

答案 1 :(得分:0)

问题是http://example.com/contact/包含http://example.com/。 请改用:

String replacedString = originalString.replace("http://example.com/contact/", "link2");
String replacedString2 = replacedString.replace("http://example.com/", "link1");

replacedString2是必需的输出

答案 2 :(得分:-3)

java中的正则表达式是http:\\/\\/example.com.*?(?=\\\\)。它匹配http://example.com的所有出现,直到下一个反斜杠