从字符串中删除 HTML 标签

新手上路,请多包涵

是否有从 Java 字符串中删除 HTML 的好方法?一个简单的正则表达式

replaceAll("\\<.*?>", "")

会工作,但有些东西如 &amp; 将无法正确转换,并且两个尖括号之间的非 HTML 将被删除(即正则表达式中的 .*? 将消失)。

原文由 Mason 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 745
2 个回答

使用 HTML 解析器而不是正则表达式。这对于 Jsoup 来说非常简单。

 public static String html2text(String html) {
    return Jsoup.parse(html).text();
}

Jsoup 还 支持 根据可自定义的白名单删除 HTML 标记,如果您只想允许例如 <b><i><u> ,这将非常有用

也可以看看:

原文由 BalusC 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你正在为 Android 写作,你可以这样做……

androidx.core.text.HtmlCompat.fromHtml(指令,HtmlCompat.FROM_HTML_MODE_LEGACY).toString()

原文由 Ken Goodridge 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题