Java替换字符串中的所有非HTML标记

Java替换字符串中的所有非HTML标记,java,tags,html-parsing,Java,Tags,Html Parsing,我想替换字符串中所有看起来像标记的部分,如果它们不是有效的HTML标记。 看起来像标签的部分是括在括号中的东西。例如,或但必须保留,,等等 你知道如何做到这一点吗 感谢您的帮助 干杯 balázs查看java.util.Scanner类-您可以设置一个分隔符,然后查看字符串是否与HTML标记匹配-您必须构建一个应忽略的字符串数组。您可能还希望在比较算法中包括结束标记。因此,您可能需要查找正斜杠(html结束标记),并在比较之前将其去掉。如果您这样做是为了在网页上显示不受信任的数据,仅删除无效标记

我想替换字符串中所有看起来像标记的部分,如果它们不是有效的HTML标记。 看起来像标签的部分是括在
括号中的东西。例如,
但必须保留

,等等

你知道如何做到这一点吗

感谢您的帮助

干杯


balázs

查看java.util.Scanner类-您可以设置一个分隔符,然后查看字符串是否与HTML标记匹配-您必须构建一个应忽略的字符串数组。

您可能还希望在比较算法中包括结束标记。因此,您可能需要查找正斜杠(html结束标记),并在比较之前将其去掉。

如果您这样做是为了在网页上显示不受信任的数据,仅删除无效标记是不够的。看看。

您可以使用它来清除HTML

String cleaned = Jsoup.clean(html, Whitelist.relaxed());
您可以使用其中一个已定义的HTML元素,也可以创建自己的自定义HTML元素,在自定义HTML元素中指定希望通过cleaner允许哪些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);
String html=“一二三四五六”;
String cleaned=Jsoup.clean(html,Whitelist.relaxed().addAttributes(“div”,“class”));
系统输出打印项次(清洁);
输出:

one two three  four  five 
<div class="bold">
 six
</div>
123445
六

更换还是拆下?请显示预期输出。“一二三四五六”到“一二三四五六”-因此替换为空字符串。感谢提示,我将查看它,但这次我希望它们简单地删除。没有更多,也没有更少。我不想自己构建数组,我只是在寻找一个已经存在的枚举,类似于这篇文章->是的,我也看到了。所以我的问题与此类似,只是我不想去掉HTML标记,而是保留它们。