是否有一个好方法从Java字符串中删除HTML ?一个简单的正则表达式
replaceAll("\\<.*?>", "")
会起作用,但有些东西像&将不能正确地转换,并且两个尖括号之间的非html将被删除(即。*?在正则表达式中将消失)。
是否有一个好方法从Java字符串中删除HTML ?一个简单的正则表达式
replaceAll("\\<.*?>", "")
会起作用,但有些东西像&将不能正确地转换,并且两个尖括号之间的非html将被删除(即。*?在正则表达式中将消失)。
当前回答
另一种方法是使用com.google.gdata.util.common.html.HtmlToText类 就像
MyWriter.toConsole(HtmlToText.htmlToPlainText(htmlResponse));
虽然这不是防弹代码,但当我在维基百科条目上运行它时,我也得到了风格信息。然而,我相信对于小/简单的工作,这将是有效的。
其他回答
HTML转义真的很难做对-我绝对建议使用库代码来做这件事,因为它比你想象的要微妙得多。在Apache的StringEscapeUtils中有一个非常好的库,可以在Java中处理这个问题。
你可以简单地用多个replaceAll()方法像
String RemoveTag(String html){
html = html.replaceAll("\\<.*?>","")
html = html.replaceAll(" ","");
html = html.replaceAll("&"."");
----------
----------
return html;
}
使用这个链接,你需要的最常见的替换: http://tunes.org/wiki/html_20special_20characters_20and_20symbols.html
这很简单,但很有效。我使用这个方法首先删除垃圾,但不是第一行,即replaceAll(“\<.*?>”,“”),然后我使用特定的关键字搜索索引,然后使用.substring(开始,结束)方法去除不必要的东西。因为这更健壮,你可以在整个html页面中准确地指出你需要什么。
听起来好像您想从HTML转换为纯文本。 如果是这样的话,请查看www.htmlparser.org。下面是一个示例,它从URL中找到的html文件中剥离所有标记。 它使用org.htmlparser.beans.StringBean。
static public String getUrlContentsAsText(String url) {
String content = "";
StringBean stringBean = new StringBean();
stringBean.setURL(url);
content = stringBean.getStrings();
return content;
}
您可以使用此代码删除HTML标记,包括换行符。
function remove_html_tags(html) {
html = html.replace(/<div>/g, "").replace(/<\/div>/g, "<br>");
html = html.replace(/<br>/g, "$br$");
html = html.replace(/(?:\r\n|\r|\n)/g, '$br$');
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
html = tmp.textContent || tmp.innerText;
html = html.replace(/\$br\$/g, "\n");
return html;
}
在Android上试试这个:
String result = Html.fromHtml(html).toString();