如何在文本文档中找到这种模式?

时间:2019-05-14 00:25:19

标签: python regex pattern-matching

因此,我正在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。

但是仅搜索错误一词确实有用。

1 个答案:

答案 0 :(得分:1)

在@CAustin的帮助下,我发现我正在搜索错误的模式,这是因为该行未以错误开头,并且该行的结尾也以逗号结尾。通过删除两个锚点,我可以找到在此示例中需要找到的内容,因此对于其他任何正在寻找类似内容的人来说都是这样...

    for line in testingDoc:
        if bool(re.search("Error.* Activation", line)):
            print("found error in transaction")