python关于正则表达处理数据提高运行效率

本文分享了一次正则表达式优化的经历,通过去除贪婪模式并简化正则规则,显著提高了文本处理速度,从半小时缩短至1分钟内完成900M文本的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开发了一个工具,读取900M甚至更大的文本,文本的每一行都要进行正则表达式的判断和处理,刚开始的时候,运行工具,发现处理数据非常慢,甚至要半个钟到一个钟才能遍历完所有数据,速度慢的难以接受,然后我开始进行排查到底是什么地方占用的时间长,再进行优化,我发现有两行代码的时间有明显的时间占用,这两行也就是匹配正则表达式而已,呃呃呃,这个要怎么搞???

查了半天,看的云里雾里,貌似很复杂的样子,弄了挺久,没有搞定,好吧,不绕弯子了,后面我放了一下这个事,忽然想到我的正则表达式的规则是贪婪模式的,如下:

我把.*去掉后,再运行,速度杠杠的,1分钟内处理完数据,说明正则表达式贪婪模式是非常耗时的,正则表达式中应该尽量匹配少,效率会高很多

 

另外查了资料,看到这样一段话,也许有用:

“python正则表达式特别慢的话主要是正则表达式太长了

脚本匹配需要太长时间

把要取的信息分为几段取就行

运行速度一下子就提升了”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值