在python中用正则表达式匹配任何字符和/或未定义的换行符

问题描述 投票:0回答:1

我必须在python中使用正则表达式解析日志txt文件。这是txt(名称为file)的示例:

[20/01/18,08:11-彼得:早上好

你好吗?

Peter 20/01/18,09:00-Caroline:很好,谢谢。您?

[20/01/18,09:01-彼得:很好

几天前我遇到了一些问题。

现在我很高兴

你在工作吗?

[20/01/18,09:02-卡罗琳:不,我必须去超市购买蔬菜

[20/01/18,09:12-彼得:尼斯!

你现在在哪里?

我尝试使用此正则表达式解析全文:

f = open(file, 'r', encoding='utf-8')
texts=re.findall('(\d+/\d+/\d+, \d+:\d+\d+) - (.+?): (.*)',f.read())
f.close()

df= pd.DataFrame(texts,columns=['data','name','text'])

但是,在python中匹配一个或多个换行符时出现问题(例如Peter在09:01处的文本)。我也尝试在https://regex101.com/上寻找可能的解决方案,但未成功。

您能帮我吗?

python regex findall logfile-analysis
1个回答
0
投票

默认情况下,.与换行符不匹配。您需要use MULTILINE mode

re.findall('(\d+/\d+/\d+, \d+:\d+\d+) - (.+?): (.*)', f.read(), re.MULTILINE)
© www.soinside.com 2019 - 2024. All rights reserved.