有没有一种从Java字符串中删除HTML的好方法?一个简单的正则表达式
replaceAll("\\<.*?>","")
Run Code Online (Sandbox Code Playgroud)
会工作,但&不会正确转换,两个尖括号之间的非HTML将被删除(即.*?正则表达式将消失).
我有以下代码:
public class NewClass {
public String noTags(String str){
return Jsoup.parse(str).text();
}
public static void main(String args[]) {
String strings="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN \">" +
"<HTML> <HEAD> <TITLE></TITLE> <style>body{ font-size: 12px;font-family: verdana, arial, helvetica, sans-serif;}</style> </HEAD> <BODY><p><b>hello world</b></p><p><br><b>yo</b> <a href=\"http://google.com\">googlez</a></p></BODY> </HTML> ";
NewClass text = new NewClass();
System.out.println((text.noTags(strings)));
}
Run Code Online (Sandbox Code Playgroud)
我有结果:
hello world yo googlez
Run Code Online (Sandbox Code Playgroud)
但我想打破界限:
hello world
yo googlez
Run Code Online (Sandbox Code Playgroud)
我查看了jsoup的TextNode#getWholeText()但我无法弄清楚如何使用它.
如果<br>我解析了标记中的a ,那么如何在结果输出中获得换行符?