【问题标题】:How to delete <a> tag and link text from html in java如何在java中从html中删除<a>标签和链接文本
【发布时间】:2014-11-09 02:47:54
【问题描述】:

我想从我的 html 中删除 &lt;a&gt; 标记和链接文本。

简单示例:

String inputString = "<html><p>test <a href="example.com">link</a> </p></html>";

我尝试使用这样的东西:

String result = inputString.replaceAll("</?a[^>]*>", " ");

但它只删除&lt;a&gt;标签

预期输出:

String result = "<html><p>test</p></html>";

【问题讨论】:

  • 1.发布此类问题时,您应该显示预期的输出。 2 你不应该使用正则表达式来解析html。
  • 试试jsoup好吗?
  • Jsoup 推荐 +1

标签: java html regex string tags


【解决方案1】:

如果我理解您的问题,您可以使用String#replaceAll() 和正则表达式。像这样的,

String inputString = "<html><p>test "
    + "<a href=\"example.com\">link</a> </p></html>";
System.out.println(inputString);
inputString = inputString.replaceAll("\\s*<a.*</a>\\s*", "");
System.out.println(inputString);

输出是

<html><p>test <a href="example.com">link</a> </p></html>
<html><p>test</p></html>

【讨论】:

    【解决方案2】:

    与 XML 不同,oracle 没有像 jaxb 那样为 html 提供解析器。但是你可以使用外部解析器。

    如果你想操作 html 标签,那么你就去吧:

    http://jsoup.org/ 并下载 jsoup

    【讨论】:

      【解决方案3】:

      您可以使用此正则表达式删除节点和空格

      String result = inputString.replaceAll("(\\s+)?<a.+?/a>(\\s+)?", "");
      

      【讨论】:

        猜你喜欢
        • 2022-07-21
        • 2020-03-26
        • 2022-11-20
        • 2011-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-29
        • 1970-01-01
        相关资源
        最近更新 更多