因此,我正在python中练习一些RegEx,本质上我想查看交易号的日志,看看是否有任何一个返回错误,例如电话激活错误。
我成功地在字典中搜索了以Error开头,然后以Activation结尾的内容,因此,如果它是平板电脑,手表等,它仍然会找到错误。但是,作为批量文本文件,它将无法成功找到模式。
因此,我用来在字典中找到它的代码是这样的:字典密钥是一个事务号,而错误(或缺失)是值:
for i in Transaction_Log:
if bool(re.search("^Error.* Activation$", Transaction_Log[i])):
print("Found requested error in transaction number " + i)
error_count += 1
这可行,但是使用相同的搜索功能在这样的文本文件设置中找不到任何东西:
Transnum: 20190510001 error: Error in phone Activation,
Transnum: 20190510002 error: none,
Transnum: 20190510003 error: Error in tablet Activation,
理想情况下,它可以找到错误的类型,成功后我可以做一个计数器来查看有多少错误,但是当通过文本文件搜索这种方式时,我的布尔型语句不是True。
但是仅搜索错误一词确实有用。
答案 0 :(得分:1)
在@CAustin的帮助下,我发现我正在搜索错误的模式,这是因为该行未以错误开头,并且该行的结尾也以逗号结尾。通过删除两个锚点,我可以找到在此示例中需要找到的内容,因此对于其他任何正在寻找类似内容的人来说都是这样...
for line in testingDoc:
if bool(re.search("Error.* Activation", line)):
print("found error in transaction")