使用正则表达式从内容中删除 HTML 注释


Using Regular Expression remove HTML comments from content

我正在将页面内容放入变量$content

我需要使用正则表达式从$content中删除 HTML 注释。我尝试了以下代码,它无法正常工作

$content = preg_replace('/<!--(.|')*?-->/', '', $content);

看起来你错过了什么。

 $content = preg_replace( '/<!--(.|'s)*?-->/' , '' , $content );

您可以在此处进行测试 http://www.phpliveregex.com/p/1LX

你的反斜杠正在逃脱你的)......我不确定你认为(.|')在做什么;为什么不直接使用 .*? 并完全删除捕获组?

此外,您希望设置 s 修饰符以使.新行匹配。

修订后的代码

$content = preg_replace('/<!--.*?-->/s', '', $content);

http://php.net/manual/en/reference.pcre.pattern.modifiers.phphttp://www.regular-expressions.info/

使用这个:

您必须转义!因为它是 reg exp 的一部分,并且还需要包含新行s修饰符,这用于 if 注释不是一行。和懒惰的标志U尽可能少地匹配,当你收到多个评论时完美工作

$content = preg_replace('/<'!--.*-->/Us', '', $content);