可能重复:
help need to write regex
我的日志文件格式如下:
Using data from (yyyy/mm/dd): 2011/8/3
0 files queued for scanning.
Warning: E:\test\foo
Händler.pdf File not Found.
Loading com, please wait.
1520 file scanned.
我想写一个正则表达式来检测警告消息和使用日期 所以我的出局就像 {'使用日期':'2011/8/3','警告':'E:\ test \fooHändler.pdf文件未找到'}
我试过了,但我只得到了输出:
logd = re.compile("Using\sdata\sfrom\s\(yyyy/mm/dd\):\s(? P<Defs_Date>\d{4}/\d+/\d+)[^\w\d] ")
data = Re.search(logd, log).groupdict()
输出将是:
{'Defs_Date': '2011/8/3'}
有人可以帮我更新我的正则表达式来提取我正在寻找的信息吗?
答案 0 :(得分:1)
如果没有广泛的日志文件视图,这可能会对您有所帮助:
In [1]: import re
In [2]: txt = open('foo.log', 'r').read()
In [3]: regexp = re.compile(r'''Using data.+\): (?P<Defs_Date>\d{4}/\d+/\d+).+(?P<Warning>Warning: .+)Loading.+scanned.''', re.S)
In [4]: regexp.search(txt).groupdict()
Out[4]:
{'Defs_Date': '2011/8/3',
'Warning': 'Warning: E:\\test\\foo\n H\xc3\xa4ndler.pdf File not Found.\n '}
处理输出以满足您的需求。