Python正则表达式findall意外输出

2024-10-01 07:46:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python2.7来读取一个文件,我希望对文件的内容使用regex来提取某些信息。然而,我当前的正则表达式包含了我似乎无法摆脱的额外数据。你知道吗

for event in reader:
    #print(event)
    strevent = str(event)
    print re.findall(r"protocol':(.*?),", strevent)

上面的代码工作正常,输出为关于芬德尔命令是:

[' 6']

但我希望输出值仅为6

这是我正在阅读的文件内容的一个片段

["{'protocol': 6", " 'dport-icode': 80", " 'signature-id': 15", " 'mpls-    label': None",
 " 'sensor-id': 0", " 'impact-flag': 0""]

其目的是提取识别标签之间的数据,并将其粘贴到变量中,以便稍后进行操作。你知道吗

对regex代码的任何改进都将不胜感激。谢谢。你知道吗


Tags: 文件数据代码inevent信息id内容
1条回答
网友
1楼 · 发布于 2024-10-01 07:46:54
  1. 为图案添加空间

    print re.findall(r"protocol': (.*?),", strevent)
    
  2. 从结果中删除空白

    result = re.findall(r"protocol': (.*?),", strevent)
    print [ r.strip() for r in result ]
    
  3. 为什么不尝试将数据作为json对象加载到对象中呢?这个案子可能容易多了。python json library

相关问题 更多 >