我正在将页面内容放入变量$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);