我有一个由 3 个键组成的字典,IP, Session_ID, Session_Length,
这些值来自多个正则表达式,如下所示:
regex_IP = re.compile('(?<![0-9])(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}))(?![0-9])')
regex_req_sesslength = re.compile('([5-9]|\d\d\d*)\s[seconds]')
regex_high_sess = re.compile('(?P<sessionLength>[5-9]|\d{2,})(?= seconds)|(?<=relay_session )(?P<session_ID>\d+)(?= \(U)')
我打开了一个文件日志文件,我想搜索整个文件,首先搜索一行,session_ID
然后session_length
如果找到,然后session_ID
使用IP
.
这是我到目前为止所达到的https://repl.it/H9JR,示例文本:https ://pastebin.com/0EVjFRkL
我当然愿意接受逻辑建议。
更新:我发现这非常接近我想在我的代码中应用的内容:将 列表值匹配到 dict 并在新 dict 中返回键/值对
问题是当我这样做时:
filtered_dict = {k: my_dict[k] for k in result3 if k in my_dict}
print (filtered_dict)
它只返回 {} 仅此而已..