我正在使用Python 2.7来读取文件,我希望在文件内容上使用正则表达式来提取某些信息。然而,我目前的正则表达式包括我似乎无法摆脱的额外数据。
for event in reader:
#print(event)
strevent = str(event)
print re.findall(r"protocol':(.*?),", strevent)
以上代码有效, re.findall 命令的输出为:
[' 6']
但我正在寻找输出只是 6
这是我正在阅读的文件内容的片段
["{'protocol': 6", " 'dport-icode': 80", " 'signature-id': 15", " 'mpls- label': None",
" 'sensor-id': 0", " 'impact-flag': 0""]
目的是提取识别标签之间的数据并将其粘贴到变量中,然后再进行操作。
非常感谢正则表达式代码的任何改进。感谢。
答案 0 :(得分:1)
为您的模式添加空间
print re.findall(r"protocol': (.*?),", strevent)
从结果
中修剪空白区域result = re.findall(r"protocol': (.*?),", strevent)
print [ r.strip() for r in result ]
为什么不尝试将数据作为json对象加载到对象?这种情况可能要容易得多。 python json library