Java替换String中的所有非HTML标记

Bal*_*eth 4 java tags html-parsing

如果这些部分不是有效的HTML标记,我想替换String中所有看起来像标记的部分.带标签的部分用<>括号括起来.例如.<myemail@email.com>或者<hello>不过<br>,<div>等必须保持.

你知道如何实现这个目标吗?

任何帮助表示赞赏!

干杯,

巴拉兹

dog*_*ane 8

您可以使用JSoup来清理HTML.

String cleaned = Jsoup.clean(html, Whitelist.relaxed());
Run Code Online (Sandbox Code Playgroud)

您可以使用其中一个已定义的白名单,也可以创建自己的自定义白名单,在其中指定希望通过清理器允许的HTML元素.其他一切都被删除了.


您的具体示例是:

String html = "one two three <blabla> four <text> five <div class=\"bold\">six</div>";
String cleaned = Jsoup.clean(html, Whitelist.relaxed().addAttributes("div", "class"));
System.out.println(cleaned);
Run Code Online (Sandbox Code Playgroud)

输出:

one two three  four  five 
<div class="bold">
 six
</div>
Run Code Online (Sandbox Code Playgroud)