我将页面内容转换为变量 $ content
我需要使用正则表达式从$ content中删除HTML注释。我尝试了以下代码,但它无法正常工作
$content = preg_replace('/<!--(.|\)*?-->/', '', $content);
答案 0 :(得分:6)
看起来你错过了一些东西。
$content = preg_replace( '/<!--(.|\s)*?-->/' , '' , $content );
进行测试
答案 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);