如何在Java中删除HTML标记?

时间:2012-06-28 04:59:15

标签: java regex html-parsing

我需要从java

中的以下字符串中删除HTML标记
String text = "<html><head></head><body>hi x>a and y<b and z>c</body></html>";

我可以用正则表达式做到这一点。但它也删除了字符串中的“b和z”。因为它被认为是标记。

1 个答案:

答案 0 :(得分:1)

当然会删除“b和z”。 应该删除该文本。因为在HTML属性中不必引用它们并且它们不需要值。因此b是一个元素,andz是属性(没有值)。这就是HTML解析器可以识别的内容。

当然,andz并不是b元素的真正可接受的属性,但就语法结构良好而言,您应该将b识别为元件。

如果您不想删除,则需要将<写为&lt;。这就是如何编写正确的HTML。 :)

<强>附录

(是的,我知道评论中引用的着名的“无法用正则表达式解析HTML”答案,但问题中的< vs &lt;值得指出回答,恕我直言。)