1

我正在尝试从一段文本中去除 HTML 标签。然而问题在于,无论我使用什么 - 正则表达式、strip_tags 等。都会遇到同样的问题:它还会去除不是 HTML 但看起来像它的文本。

Some <foo@bar.com> Content--> Some Content
Some <Content which looks like this --> Some 

有没有办法解决这个问题?

4

2 回答 2

3

一个完全正确的解决方案是一个成熟的 HTML 解析器。请参阅这个传奇问题进行完整讨论。

一个简单的 80% 解决方案是查找所有已知标签并将它们剥离。

RegExp('</?(a|b|blockquote|cite|dd|dl|dt|...|u)\b.*?>')

如果您使用标签数组并在循环遍历它们时构建表达式,则代码将更具可读性。它不能很好地处理评论,所以如果你需要的不仅仅是 hack 质量,不要使用 hack 方法。如果您需要正确性,请使用实际的 HTML 解析器(例如 PHP 中的 DOMDocument)。

于 2013-07-19T10:40:35.177 回答
2

您是否尝试过HTML 净化器库?您可以将其配置为去除所有标签,我发现该库非常可靠。

于 2013-07-19T10:40:11.027 回答