Regex Python正则表达式打印匹配项中的2项
我试图从下一行中提取进程id和单词“ERROR”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]+"
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')]