下面的代码与comments变量中的字符串匹配,如何构造与下面显示的两个注释匹配的字符串?我要检查QSPR测试结果:\siggy.*和TEST结果:。*你知道吗
import re
comments = "QSPR TEST RESULTS:\\siggy\QSPRLog\QCA\CST\2016\3\28\TestCaseLogs\N12345678-3_28_16_16_36_29_000_635947797916487681.html are the results"
#comments = "TEST RESULTS:BT ON\OFF LOOKS GOOD"
def matchcomments(comments, matchstring):
matchobj = re.search(matchstring, str(comments))
if matchobj:
return True
return False
def main ():
try:
string = r"QSPR TEST RESULTS:\\siggy\.*"
match = matchcomments(comments, string)
if match == True:
tested_bit_flag = True
else:
#string = r"Included in BIT"
string = r"DONOT MATCH"
match = matchcomments(comments, string)
if match == True:
tested_bit_flag = True
else:
tested_bit_flag = False
except KeyError:
tested_bit_flag = False
print "This gerrit does not have comments:"
print tested_bit_flag
if __name__ == "__main__":
main()
如果我理解正确:
这应该与你感兴趣的文本相匹配。你知道吗
Demo here
用这个。你知道吗
说明:
(?:QSPR)?和(?:不匹配)
(?:)表示非捕获组。我们的想法是检查组的存在或不存在(在本例中是QSPR或DONOT MATCH),而不关心匹配是什么(因为我们已经知道它是什么)。结尾的问号表示该组是可选的。你知道吗
\s?测试\s结果:\siggy\
这部分内容与文中给出的内容非常吻合。你知道吗
(.*)
捕获组中您感兴趣的文本。请注意,这是唯一的(捕获)组,因此当您使用参数1调用match对象的group属性时,会得到您感兴趣的文本。你知道吗
还要注意,这个正则表达式将捕获0个或更多字符。替换为(.+)以捕获一个或多个字符,以确保非空。你知道吗
|字符表示左边的表达式或右边的表达式应该匹配。在这种特殊情况下,由于右侧表达式中没有组(?)?:不匹配),呼叫匹配对象组(1) 当comments=“DONOT MATCH”将返回None时。请确保稍后在代码中对此进行检查。你知道吗
相关问题 更多 >
编程相关推荐