re.finditer背后的算法是什么?

问题描述

我正在研究字符串搜索算法,经过一段时间后,我发现re.finditer函数的结果要比Naive / KMP / Boyer-Moore的实现快得多。我读到Python re libray使用了基本的回溯算法,但是我想知道是否有人可以将我指向更具体的方向/代码,从而使我可以更好地理解他们的算法?谢谢!

解决方法

解决方案

假设您是指CPython。

该函数在此处定义: https://github.com/python/cpython/blob/master/Lib/re.py#L243-L248

回溯算法在此处实现:https://github.com/python/cpython/blob/master/Lib/sre_compile.py