帮助需要编写正则表达式

时间:2011-09-13 13:24:34

标签: python regex

  

可能重复:
  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'}

有人可以帮我更新我的正则表达式来提取我正在寻找的信息吗?

1 个答案:

答案 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       '}

处理输出以满足您的需求。