Skip to main content
 首页 » 编程设计

python之有效计算 Python 正则表达式匹配

2025年05月04日23mfrbuaa

我需要有效地应对 Python Regex 匹配。 Findall 和 finditer 可以工作,但对于大量 的搜索来说速度很慢。

到目前为止我有这个(大大简化的版本):

import re 
testItem = re.compile(r"var") 
for matches in testItem.finditer(stringData): 
    counter = counter + 1 
return counter 

我正在运行此方法的多个实例。我不关心火柴本身;我只是想退回柜台。

问题在于 stringData 是一个非常大的字符串。正则表达式本身非常简单。

请建议更有效的方法。

提前致谢。

请您参考如下方法:

由于您在编辑中表明您只是在寻找子字符串,

stringData.count('var') 

应该能很好地为您服务。

当然,这并不能推广到 RE 的许多其他用途!不幸的是,至少从 Python 3.4 开始,re.finditer 返回一个不支持由 PEP 424 形式化的“长度提示”的迭代器。 ,所以没有很多好的选择(对于一般情况)

sum(1 for _ in there.finditer(stringData))