使用PHP删除内部注释中的CSS
假设我有这样一个字符串:使用PHP删除内部注释中的CSS,php,regex,Php,Regex,假设我有这样一个字符串: $css = '.class { color: red; } /* Start Comment */ .replace { content: "me"; } /* End Comment */'; 如何删除评论中的所有内容,包括评论本身 我想要这个结果: .class { color: red; } 我尝试过类似的方法,但没有成功: $css = preg_replace( '#(/* Start Comment */).*?(/* End
$css = '.class {
color: red;
}
/* Start Comment */
.replace {
content: "me";
}
/* End Comment */';
如何删除评论中的所有内容,包括评论本身
我想要这个结果:
.class {
color: red;
}
我尝试过类似的方法,但没有成功:
$css = preg_replace( '#(/* Start Comment */).*?(/* End Comment */)#', '', $css );
我也试过:
我是不是错过了一些明显得可笑的东西
非常感谢您的反馈-我需要进一步研究正则表达式。您可以通过添加DOTALL修饰符
s
此外,应转义
*
,以获得所需的效果。当您使用另一个分隔符时,/
很好。*
是一个特殊字符,如果您想匹配一个文本,必须将其转义<默认情况下,代码>与换行符\n
不匹配。要使其也与换行符匹配,必须使用s
修饰符。请尝试转义/
和*
/\/*。+/s也与字符串匹配您不必使用两个反斜杠来转义*
只有一个就足够了。请注意,您也可以对长文字部分使用\Q..\E
功能。它可以不使用反斜杠,但总是转义反斜杠更为简洁,即使是在单引号中。除此之外,单引号本身是唯一可以手动转义的东西。
$css = preg_replace( '#(/\\* Start Comment \\*/).*?(/\\* End Comment \\*/)#s', '', $css );