我有一个正则表达式,我想匹配某个模式。但是,如果HTML注释块之间存在该模式,我不希望它与该模式匹配
我目前拥有的是:
(?<!<!--)pattern(?!-->)
但是,仅当模式恰好位于注释块之间时才有效,而在诸如以下情况下则无效:
<!-- foo pattern -->
但如果我这样做:
(?<!<!--.*)pattern(?!-->)
然后这种情况不起作用:
<!-- some commented out stuff --> pattern
我想我是否可以表达(除->以外的所有内容)*?在负面的印象中可以正常工作,但是我不确定语法是否正确,或者是否允许。
答案 0 :(得分:0)
我的猜测是,您的原始表达式可以稍加修改就可以了,我们可能希望使用类似于以下的表达式:
(?<=<!--).*pattern.*(?=-->)
并且如果我们希望捕获或不捕获pattern
附近的任何东西,这些可能会引起关注:
(?<=<!--).*(pattern).*(?=-->)
(?<=<!--)(.*pattern.*)(?=-->)
(?<=<!--)(.*)(pattern)(.*)(?=-->)
(?<=<!--)(?:.*)(pattern)(?:.*)(?=-->)