我使用JSoup将包含HTML标记的字符串解析为纯文本。例如:
String newStr = Jsoup.parse(testStrHTML).text();
它解析得非常好,但问题是我的Java字符串是否包含<
和>
之间的数据,例如Hello <test@gmail.com>
所以它正在删除电子邮件地址数据。我得到的输出是 Hello ,我期待Hello <test@gmail.com>
。
我用正则表达式尝试了它,就像
一样String newStr = testStrHTML.replaceAll("\\<.*?\\>", "");
但还是有问题。
无论如何要在<
和>
之间解析没有自定义数据的HTML代码
答案 0 :(得分:2)
你的正则表达式
String newStr = testStrHTML.replaceAll("\\<.([^>]*)\\>", "\\1");
完全删除标记。它匹配&lt;的开头。在标签的开头,标签的标签,标签的任何属性和最终的&gt;。然后用空字符串替换它。
erCount
应使用标签和标签的任何属性替换所有标签。这大致与正则表达式相同,但它将替换匹配括号内的文本。
请注意,这会删除上下文,因此它可能不是一个好的解决方案。它也不会产生易于阅读的输出,因为部分保留了有效的html。
最好继续使用Jsoup并导航DOM。