【发布时间】:2016-08-25 11:40:50
【问题描述】:
我正在尝试编写一个从 HTML 中删除 cmets 的脚本,以 [ 或 ! 开头的除外。例如,下面的 cmets 应该被移除:
<!-- one line comment -->
<!--
multiple line comment
-->
应不删除以下内容:
<!-- ! one line comment -->
<!--! one line comment -->
<!--!
multiple line comment
-->
<!-- !
multiple line comment
-->
<!--
!multiple line comment
-->
<!--[if lt IE 9]>
我正在尝试运行以下命令:
$html = preg_replace('/<!--[\s\r\n]*[^![].*-->/Uis', '', $html);
但它不匹配第一类字符(任意数量的空格和换行符)。例如,<!-- !test --> 已从 HTML 中删除,而 <!--!test --> 则没有。
怎么了?
【问题讨论】:
-
试试正则表达式
-
@sam,
<!--[^>]*-->在这里帮不上忙。 -
我完全同意@WiktorStribiżew 很抱歉
标签: php regex preg-replace pcre