找不到函数调用的字符串

时间:2015-12-07 18:31:46

标签: regex swift

我尝试了一切,但我的正则表达能力很差。

我的情况是,我正在尝试解析文件if mission1 == '3': print '"The quest is very simple. You have to go kill the orcs"\n' 来提取字符串,例如我有一个包含许多行的类,在这个文件中我有类似的东西。

.swift

我有这个正则表达式let textReference1Count = "text 1".count() let textReference2Count = "text 2" let textReference3Count = "text 3".count() ,我可以返回所有(["'])(?:(?=(\\?))\2.)*?\1

在这种情况下,任务只返回Strings而不是Strings

我读到.count(),但每次尝试使用取消全部搜索。

感谢提前

编辑:

此案例的解决方案是ˆ

1 个答案:

答案 0 :(得分:1)

www.rexegg.com/regex-best-trick.html提供了可以在这种情况下使用的一种方法的详细说明。 在尝试匹配模式但排除某些类似模式时,您可以使用:

ExcludePatternA | ExcludePatternB | ExcludePatternC | (TheOneIWantToMatch)

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

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

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

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