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

时间:2013-10-30 07:14:51

标签: php regex preg-replace

我将页面内容转换为变量 $ content

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

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

3 个答案:

答案 0 :(得分:6)

看起来你错过了一些东西。

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

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

进行测试

答案 1 :(得分:4)

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

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

修订代码

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

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

答案 2 :(得分:0)

使用此:

你必须逃避!,因为它是reg exp的一部分,还需要包含新的行s修饰符,如果注释不是一行,这就是。并且懒惰标记U尽可能少地匹配,当你收到多个评论时 完美无缺

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