[英]Using JSoup to remove only HTML tags and not data within '<' and '>' tags
我正在使用JSoup解析包含HTML标记为纯文本的字符串。 例如:
String newStr = Jsoup.parse(testStrHTML).text();
它的解析效果很好,但是问题是我的Java字符串是否包含<
和>
之间的数据(例如Hello <test@gmail.com>
因此它正在删除电子邮件地址数据。 我得到的输出是Hello ,我期望在其中Hello <test@gmail.com>
。
我也尝试过使用正则表达式
String newStr = testStrHTML.replaceAll("\\<.*?\\>", "");
但是仍然有问题。
无论如何在<
和>
之间解析没有自定义数据的HTML标签
您的正则表达式
String newStr = testStrHTML.replaceAll("\\<.*?\\>", "");
完全删除标签。 它与<的开头,标签的开头,标签的标签,标签的所有属性以及最后的>匹配。 然后将其替换为空字符串。
String newStr = testStrHTML.replaceAll("\\<.([^>]*)\\>", "\\1");
应将所有标签替换为标签和标签的所有属性。 这与您的regexp大致匹配,但是用括号内的文本替换了匹配项。
请注意,这会删除上下文,因此它可能不是一个好的解决方案。 由于有效的html被部分保留,因此它也不会产生易于阅读的输出。
最好还是使用Jsoup并浏览DOM。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.