python - 在 Python 上捕获与正则表达式的匹配并将捕获的字符串值分配给变量

标签 python regex string list

刚开始学习 python/regex。

我有一个错误日志文件,我想在其中捕获与特定模式匹配的字符串,并从中创建一个列表。每行有一个错误。我有日期时间部分。我需要提取“公司”和“错误行”,将它们分配给变量,附加到我的嵌套列表中。

错误行看起来像这样:

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()

关于python - 在 Python 上捕获与正则表达式的匹配并将捕获的字符串值分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839384/

相关文章:

python - 给定一个可以在字典的元组键之间找到的整数,在字典中查找值

python - 'module' 的实例没有 'LBPHFaceRecognizer_create' 成员

java - 正则表达式用引号替换字符串

python - 使用 pandas GroupBy 聚合字符串列

python - 要在 python 中打印特定的文件夹名称?

Python 提取模式匹配

php - 使用php从网站中提取数据

c - 我们如何知道 C 中的字符串元素未初始化?

ruby - 从字符串中删除第一个字符的最简单方法是什么?

string - 从 Gnuplot 中的文件名提取数据