gpt4 book ai didi

正则表达式匹配一组行,除非它们包含一个字符串

转载 作者:行者123 更新时间:2023-12-05 04:26:20 27 4
gpt4 key购买 nike

我似乎无法编写正则表达式来匹配一组由两个特定字符串分隔的行,除非第三个字符串出现在该组中。

示例。给定这段代码:

func foo() {
print("foo")
dontmatchme
}

func foo2() {
print("foo2")
}

func foo3() {
print("foo")
dontmatchme
}

我只想匹配foo2,因为它不包含函数体内的字符串dontmatchme

我正在使用 func foo.*(\n|.)*?(}) 来匹配函数,但我似乎无法正确使用后视,以避免匹配包含 dontmatchme 的。

谢谢!

最佳答案

你可以像这样使用一个否定的前瞻:

func foo(?![^}]*dontmatchme)[^}]*}

RegEx Demo

正则表达式详细信息:

  • func foo : 匹配 func foo正文
  • (?![^}]*dontmatchme) : 如果我们有dontmatchme,否定前瞻使匹配失败匹配前先于当前位置}
  • [^}]* : 匹配 0 个或多个除 } 之外的任何字符
  • } : 匹配}

关于正则表达式匹配一组行,除非它们包含一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73085717/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com