我似乎无法编写一个正则表达式来匹配由两个特定字符串分隔的一组行,除非在这个组内出现第三个字符串。
示例。 给定此代码块:
func foo() {
print("foo")
dontmatchme
}
func foo2() {
print("foo2")
}
func foo3() {
print("foo")
dontmatchme
}
我希望只匹配 foo2
,因为函数体内不包含字符串 dontmatchme
。
我正在使用 func foo.*(\n|.)*?(})
匹配函数,但我似乎无法正确使用回顾后发断言来避免匹配包含 dontmatchme
的函数。
谢谢!
func foo(?:(?!dontmatchme)[\w\W])*?(})
,参见 https://regex101.com/r/jjbrQz/1 - Wiktor Stribiżew