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

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

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

python关于正则表达处理数据提高运行效率_第1张图片

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

 

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

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

脚本匹配需要太长时间

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

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

你可能感兴趣的:(python,学习进阶)