删除除换行符以外的 HTML 标签

Kha*_*aza 0 html regex android line-breaks

我正在从具有 HTML 标签的服务器接收字符串。我正在使用正则表达式删除这些标签,string1.replaceAll("\\<.*?>","")但问题是它还删除了换行符和超链接。我想保留超链接和换行符并删除其他所有内容。

Jen*_*ens 5

不要使用正则表达式来解析 HTML。

将它从 HTML 中完全剥离(不是你想要的,但很简单):

String html = "<h1>I only want<br/>line breaks and " + 
    "<a href='http://stackoverflow.com'>links</a>, <i>not</i>" +
    " the <b>other</b> stuff";
String sansHtml = Html.fromHtml(html).toString();
Run Code Online (Sandbox Code Playgroud)

为了有选择地剥离它, 保留<a>(和href属性)和<br>标签,我建议你使用JSoup

Whitelist whitelist = Whitelist.none().addTags("a", "br").addAttributes("a", "href");
String jsoupHtml = Jsoup.clean(html, whitelist);
Run Code Online (Sandbox Code Playgroud)