在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中用正则表达式匹配任何字符和/或未定义的换行符的主要内容,如果未能解决你的问题,请参考以下文章