我正在尝试测试一个shebang“#!”使用此正则表达式(?!\/)#\!(?!\/)
它应匹配:
#!
,z#!
,#!z
,z#!z
不匹配:/#!
,#!/
,/#!/
我在shebang周围放了负面的前瞻,所以它不会匹配任何斜杠,实际上它与尾部斜杠不匹配,但由于某种原因它仍然匹配前导斜杠/#!
。
有关为何发生这种情况的原因/如何解决?
答案 0 :(得分:2)
您想要使用Negative Lookbehind and Negative Lookahead的组合。
(?<!/)#!(?!/)
<强>解释强>:
(?<! # look behind to see if there is not:
/ # '/'
) # end of look-behind
#! # '#!'
(?! # look ahead to see if there is not:
/ # '/'
) # end of look-ahead