gpt4 book ai didi

regex - 在没有函数调用的情况下查找字符串

转载 作者:行者123 更新时间:2023-11-28 06:54:14 26 4
gpt4 key购买 nike

我什么都试过了,但我的 Regex 技巧很差。

我的情况是,我正在尝试解析文件 .swift 来提取字符串,例如我有一个包含很多行的类,在这个文件中我有这样的东西。

let textReference1Count = "text 1".count()
let textReference2Count = "text 2"
let textReference3Count = "text 3".count()

我有这个 Regexp (["'])(?:(?=(\\?))\2.)*?\1,有了它我可以返回所有 字符串

这种情况下的任务是只返回 Strings 而没有 .count()

我阅读了有关 ^ 的内容,但每次我尝试使用取消所有搜索时。

提前致谢

编辑:

这种情况的解决方案是 (["'])(?:(?=(\\?))\2.)*?\1(?!.count)

最佳答案

www.rexegg.com/regex-best-trick.html提供了一种可以在这种情况下使用的方法的详细解释。当试图匹配一个模式,但排除一些相似的模式时,你可以使用:

ExcludePatternA | ExcludePatternB | ExcludePatternC | (TheOneIWantToMatch)

然后在处理结果的代码中忽略整体匹配,只使用捕获组中的匹配。

在您的情况下,以下正则表达式应该有效:

(["'])(?:(?=(\\?))\2.)*?\1\.count\(\)|((["'])(?:(?=(\\?))\5.)*?\4)

它将匹配后跟 .count() 的字符串,或者只是一个字符串。在您的代码中处理结果时,只查看捕获组 3。它将包含末尾没有 .count() 的字符串。

关于regex - 在没有函数调用的情况下查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34140651/

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