Python 一行接一行地匹配多行

Python 一行接一行地匹配多行,python,regex,python-2.7,Python,Regex,Python 2.7,我有一个日志文件,其中包含以下数据对: [Connectivity] 07.07 11:35:08 [REGISTERED] 因此,我想找到每一行,只打印日期和时间。 我的示例txt文件是: [Connectivity] 07.07 11:35:08 [REGISTERED] #other stuff in the log# [Connectivity] 07.07 17:20:22 [REGISTERED] #more stuff in the log# [Connectivi

我有一个日志文件,其中包含以下数据对:

[Connectivity]  07.07 11:35:08
[REGISTERED]
因此,我想找到每一行,只打印日期和时间。 我的示例txt文件是:

[Connectivity]  07.07 11:35:08
[REGISTERED]

#other stuff in the log#

[Connectivity]  07.07 17:20:22
[REGISTERED]

#more stuff in the log#

[Connectivity]  07.07 19:10:29
[REGISTERED]
我要打印的内容应该是这样的

1: 07.07 11:35:08
2: 07.07 17:20:22
3: 07.07 19:10:29
当然,每次使用另一天的日志文件时,日期和时间都会有所不同。我假设我应该使用RE来实现这一点,但我不能让我的代码寻找两个组合行,只有一行

我厌倦了一个粗糙的正则表达式,但它让我失望:

re.findall('(\\[Connectivity\\])(\s)(\d\d\\.\d\d\s\d\d:\d\d:\d\d)\s\\[REGISTERED\\]', line, re.MULTILINE)
有人知道如何做到这一点吗?

您可以尝试以下方法:

>>> re.findall(r'\[Connectivity\]\s+(\d{2}\.\d{2} \d{2}:\d{2}:\d{2})\s+\[REGISTERED]', line, re.MULTILINE)
['07.07 11:35:08', '07.07 17:20:22', '07.07 19:10:29']
import re
data = [i.strip('\n') for i in open('log.txt')]
final_results = [re.sub("\[Connectivity\]\s", '', data[i]) for i in range(len(data)-1) if i.startswith("[Connectivity]") and data[i+1] == "[REGISTERED]"]
 new_final_data = ["{}: {}".format(i+1, a) for i, a in enumerate(final_results)]
您可以尝试以下方法:

import re
data = [i.strip('\n') for i in open('log.txt')]
final_results = [re.sub("\[Connectivity\]\s", '', data[i]) for i in range(len(data)-1) if i.startswith("[Connectivity]") and data[i+1] == "[REGISTERED]"]
 new_final_data = ["{}: {}".format(i+1, a) for i, a in enumerate(final_results)]
尝试使用
re.findall
方法。尝试使用
re.findall
方法。