我尝试了一切,但我的正则表达能力很差。
我的情况是,我正在尝试解析文件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()
,但每次尝试使用取消全部搜索。
感谢提前
编辑:
此案例的解决方案是ˆ
答案 0 :(得分:1)
www.rexegg.com/regex-best-trick.html提供了可以在这种情况下使用的一种方法的详细说明。 在尝试匹配模式但排除某些类似模式时,您可以使用:
ExcludePatternA | ExcludePatternB | ExcludePatternC | (TheOneIWantToMatch)
然后在处理结果的代码中忽略整体匹配,并仅使用捕获组中的匹配。
在您的情况下,以下正则表达式应该有效:
(["'])(?:(?=(\\?))\2.)*?\1\.count\(\)|((["'])(?:(?=(\\?))\5.)*?\4)
它将匹配一个后跟.count()的字符串,或者只是一个字符串。 在代码中处理结果时,只需查看捕获组3。 它将包含最后没有.count()的字符串。