是否有任何工具可以采用特定的正则表达式并返回与正则表达式匹配的特定数量的字符所需的操作数相关的最坏情况?
例如,给定一个 (f|a)oo.*[ ]baz
,引擎可能要经过多少个步骤才能匹配 100 个字符?
如果有一个工具可以获取一堆文本样本并显示每次运行的平均操作,我也会感兴趣。
我意识到这在很大程度上取决于所使用的引擎和实现——但我不知道这有多普遍。因此,如果它在许多语言中都很常见(使我的问题过于模糊),我会对 Perl 和 Python 特别感兴趣。
最佳答案
Regexbuddy's调试器显示引擎将采取多少步骤来结束给定样本的匹配或不匹配。更多信息 catastrophic backtracking和 debugging regular expressions .
PS:它不是免费的,但他们提供 3 个月的退款保证。
关于python - 正则表达式的最坏情况分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731104/