我正在嘗試使用Python處理日誌文件,並提取每個條目的日期,時間和日誌消息並將其存儲在一個列表中。爲此,我正在使用re.search()
和group()
方法。
問題是日期/時間採取各種格式,如。用Python中的正則表達式匹配多種可能性
dd/mm/yy, hh:mm AM - logs
dd/mm/yyyy, hh:mm a.m. - logs
dd/mm/yy HH:mm - logs
我的計劃看起來是這樣的:
import re
infile=open('logfile.txt', 'r')
loglist=[]
logdict={}
for aline in infile.readlines():
line=re.search(r'^(\d?\d/\d?\d/\d\d), (\d?\d:\d?\d \w\w) - (.*?)',aline)
if line:
logdict['date'] = line.group(1)
logdict['time'] = line.group(2)
logdict['logmsg'] = line.group(3)
loglist.append(logdict)
然而,這僅僅匹配前的上述格式。
我怎樣才能匹配其他格式以及維護組?還是有更簡單的方法來做到這一點?
是否有行*不匹配模式?一種選擇就是假設'datetime,message = line.split(' - ')'。 – jonrsharpe