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

标签 python regex performance re2

我需要有效地应对 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))

关于python - 有效计算 Python 正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547239/

相关文章:

python - 如何使用 Python 将数据上传到 Tableau Server

带约束的 Python 排列

c++ - 在 C++ 中复制和操作大型密集二维数组的最快方法是什么

php - 如何在回调函数中使用变量?

matlab - 许多嵌套循环 - 我怎样才能让它更快?

PHP:PLIST/XML 与 MySQL 的性能对比?

python,django,通过FK显示正确的字段名称,链接表

python - SOAP 水和选择标签

ruby - 除非存在 "escape"字符,否则匹配

javascript - Jquery/正则表达式验证