Regex Python正则表达式打印匹配项中的2项

Regex Python正则表达式打印匹配项中的2项,regex,python-3.x,Regex,Python 3.x,我试图从下一行中提取进程id和单词“ERROR” July bad_process[12345]: ERROR 使用以下代码,我可以打印进程id,但无法打印“ERROR”一词。如果返回0索引,则得到此行 [12345]: ERROR 如果我返回1索引,我只得到进程id 123456 但是返回索引2时,我没有得到“ERROR”这个词。如何返回id和单词“ERROR” def extract_pid(log_line): regex = r"\[(\d+)\]: [A-Z]+"

我试图从下一行中提取进程id和单词“ERROR”

July bad_process[12345]: ERROR
使用以下代码,我可以打印进程id,但无法打印“ERROR”一词。如果返回0索引,则得到此行

[12345]: ERROR
如果我返回1索引,我只得到进程id

123456
但是返回索引2时,我没有得到“ERROR”这个词。如何返回id和单词“ERROR”

def extract_pid(log_line):
    regex = r"\[(\d+)\]: [A-Z]+"
    result = re.search(regex, log_line)
    if result is None:
        return ""
    return result[1]

print(extract_pid(log))

您应该添加第二个捕获组并使用来查找所有匹配项

发件人:

re.searchpattern,字符串,标志=0

扫描字符串,查找正则表达式模式生成匹配项的第一个位置,并返回相应的MatchObject实例

输出:

[('12345', 'ERROR'), ('42', 'INFO')]
[('12345', 'ERROR'), ('42', 'INFO')]