Regex可以查找html注释,但不能仅查找ie注释


Regex to find html comment but not ie only comment

我只想使用正则表达式匹配有效的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作为一个工作示例。