我只想使用正则表达式匹配有效的HTML注释。我看过很多关于stackoverflow的问题,但没有人回答。允许匹配的模式
<!-- some comments 1 -->
<!-- 1.91 -->
<!--
//-->
<!-- -->
但不是这些IE只评论
<!--[if IE]> <![endif]-->
<!--[if !IE]><!--> <!--<![endif]-->
<!--[if IE 6]> <![endif]-->
我认为,如果它被发现为<!--
之后的第一个字符,那么它将返回false,这可以通过使用"["来完成。你可以用任何方式给出自己的解决方案。对于php,仅使用preg_replace
我真的不建议您使用regex,但如果您坚持,这里有一个基本的正则表达式:http://regex101.com/r/wI2kF7
使用定位标记:http://regex101.com/r/tC9xH4
祝你好运。
为什么要使用正则表达式?使用类似以下的DOMXPath查询
'//comment()[not(starts-with(., "[if") or . = "<![endif]")]'
请参阅http://codepad.viper-7.com/Yzs5zq作为一个工作示例。