是否有从Java字符串中删除HTML的好方法?一个简单的正则表达式
replaceAll("\\<.*?>","")
会起作用,但是&不会正确转换,并且两个尖括号之间的非HTML也会被删除(即.*?,正则表达式中的将会消失)。
&
*?
使用HTML解析器代替正则表达式。对于Jsoup来说,这简直太简单了。
public static String html2text(String html) { return Jsoup.parse(html).text(); }
Jsoup还支持对可定制的白名单,如果你希望只允许例如这是非常有用的去除HTML标签<b>,<i>和<u>。
HTML
<b>
<i
<u>
如果你是为Android编写的,则可以这样做…
android.text.Html.fromHtml(instruction).toString()