刚开始学习python / regex。
我有一个错误日志文件,我想在其中捕获与特定模式匹配的字符串,并从中创建一个列表。每行有一个错误。我有datetime部分。我需要提取“公司”和“错误线”,将它们分配给变量,然后追加到我的嵌套列表中。
错误行如下所示:2013-02-02 12:20:15 blahblahblah=123214, moreblah=1021, blah.blah.blah, company=201944, errorline=#2043
f = open("/path/error.log","r")
errorlist = [["datetime","company","errorline"]] #I want to append to nested list
for line in f:
datetime = line[:19]
company = re.search(r"=[0-9]{6},",line)
company = company.group[1:-1] #to remove the '=' and ','
errorline = re.search(r"#[0-9]{1,}",line)
errorline = errorline.group()[1:]
errorlist.append([datetime,company,errorline])
我知道这段代码行不通,因为我无法将.group()分配给变量。
请帮忙!
最佳答案
它应该是:
company = re.search(r'=([0-9]{6}),',line).group(1)
errorline = re.search(r'#([0-9]{1,})',line).group(1)
注意括号,并调用
.group
。另外,您可以一起做:company, errorline = re.search(r'=([0-9]{6}),.*?#([0-9]{1,})',line).groups()