有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

字符串Java:仅替换完全匹配的URL

我只想替换字符串中给定的完全匹配的链接。 我的代码如下:

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>"

我得到的输出是replacedString,但所需的输出应该是requiredString

提前谢谢


共 (3) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    将URL替换为引号:

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

    问题是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是必需的输出