【问题标题】:Remove only a part of a string [duplicate]仅删除字符串的一部分[重复]
【发布时间】:2014-07-24 06:28:09
【问题描述】:

如果我有以下字符串:

< asd="testJava"><a href="/title/text/">BLA BLA <asddead>

我怎样才能只得到字符串 BLA BLA。

我尝试了拆分,但它删除了我所有的字符,我只需要删除从“>”到“ArrayList 和 array.add(); 有人可以帮助我删除字符串的代码吗? 谢谢!

【问题讨论】:

  • 是 HTML 吗?是其他 XML 吗?
  • 我会在 Java 中使用它。我需要删除 html 代码并只保留字符串。
  • 不要使用正则表达式来解析 HTML。使用 HTML 解析器。

标签: java string split


【解决方案1】:

使用正则表达式将&lt;&gt; 之间的所有内容替换为空:

String newText = oldText.replaceAll("<[^>]*>", "").trim();

还有 2 个注释:

  1. 这不适用于&lt;a href="foo&gt;com"&gt;BLA BLA&lt;/a&gt; 之类的东西,因为正则表达式会匹配foo&gt;com 中的&gt; 而不是正确的。在这种情况下,我会推荐一个合适的 HTML / XML 解析器。

  2. 添加 .trim() 以擦除文本之前/之后的所有空格。没有它,&lt;img&gt; &lt;br&gt; BLA BLA 不会解析为'BLA BLA',而是' BLA BLA'

【讨论】:

    【解决方案2】:

    忽略将此解决方案扩展到完整的 HTML 解析器的含义... 您可以将 replaceAll 与正则表达式一起使用。

    str = str.replaceAll("<[^>]*>","");
    

    应该将所有的 html 都替换掉,只留下你的 BLABLA 标签

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-26
      • 2017-03-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 2020-12-22
      • 2012-03-31
      相关资源
      最近更新 更多