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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中用正则表达式匹配任何字符和/或未定义的换行符相关的知识,希望对你有一定的参考价值。

我必须在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/上寻找可能的解决方案,但未成功。

您能帮我吗?

答案

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

re.findall('(\d+/\d+/\d+, \d+:\d+\d+) - (.+?): (.*)', f.read(), re.MULTILINE)

以上是关于在python中用正则表达式匹配任何字符和/或未定义的换行符的主要内容,如果未能解决你的问题,请参考以下文章

Python_正则表达式元字符

python 正则表达

python之正则表达式

Python正则表达式

Python正则表达式

Python正则表达式