re.search组在python正则表达式中不起作用

时间:2020-06-01 21:14:14

标签: python regex

我正在尝试分析包含ping信息的文本文件中的一些日志。

这是文本文件输出的一个小示例:

[2020-06-01 21:54:15.924620] 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.029 ms
[2020-06-01 21:54:16.968341] 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.078 ms

我写了一个小的python正则表达式脚本,从time = x.xxx ms部分提取时间:

with open("ping_test.txt",'r') as fp: 
    for line in fp:       
        line = line.strip() 
        print(re.search(r'time=(\d.\d*)',line).group(1))

预期输出:x.xxx

实际输出:AttributeError: 'NoneType' object has no attribute 'group'

我尝试通过以下操作进行调试:print(re.search(r'time=(\d.\d*)',line)) 示例输出为:<re.Match object; span=(85, 95), match='time=0.032'>

这表明re.search确实在寻找匹配项。我不明白的是为什么我不能调用.group()方法来输出所需的组。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

也许只是尝试打印不匹配的行。例如:

with open("ping_test.txt",'r') as fp: 
    for line in fp:       
        res = re.search(r'time=(\d.\d*)',line.strip())
        if res:
            print(res.group(1))
        else:
            print('Error while parsing:', line)

相关问题