我有一个包含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
当然,我对逻辑推荐持开放态度。
更新:我发现这与我想要在我的代码中应用的内容非常接近: Match list values to dict and return key/value pairs in new dict
麻烦就在于我:
filtered_dict = {k: my_dict[k] for k in result3 if k in my_dict}
print (filtered_dict)
它只返回{} ......