从字符串中删除 HTML 标记

2022-08-31 04:26:39

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

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

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


答案 1

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

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

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

另请参阅:


答案 2

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

androidx.core.text.HtmlCompat.fromHtml(instruction,HtmlCompat.FROM_HTML_MODE_LEGACY).toString()