python - 正则表达式的最坏情况分析

标签 python regex perl optimization analysis

是否有任何工具可以采用特定的正则表达式并返回与正则表达式匹配的特定数量的字符所需的操作数相关的最坏情况?

例如,给定一个 (f|a)oo.*[ ]baz,引擎可能要经过多少个步骤才能匹配 100 个字符?

如果有一个工具可以获取一堆文本样本并显示每次运行的平均操作,我也会感兴趣。

我意识到这在很大程度上取决于所使用的引擎和实现——但我不知道这有多普遍。因此,如果它在许多语言中都很常见(使我的问题过于模糊),我会对 Perl 和 Python 特别感兴趣。

最佳答案

Regexbuddy's调试器显示引擎将采取多少步骤来结束给定样本的匹配或不匹配。更多信息 catastrophic backtrackingdebugging regular expressions .

catastrophic backtracking shown in RegexBuddy

PS:它不是免费的,但他们提供 3 个月的退款保证。

关于python - 正则表达式的最坏情况分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731104/

相关文章:

python - 如何获取python scipy中的所有音频参数?

python - Python mongoengine 模型中仅保存一个字段

javascript - 在 JavaScript 中从 css 规则中提取 RGB 和 RGBA

javascript - 使批量 JavaScript 替换更高效

python - 检测音频文件中的声音边界

Python - 是否可以让logging.handlers.httpHandler将内容 header 设置为JSON而不诉诸自定义代码?

python - 使用正则表达式在扑克牌中查找 "high card"

perl - 如何在生产 Web 服务器上的 Apache/mod_perl 下测试 Web Perl 模块?

perl - 如何从 Perl 中的纯文本中提取 URL?

perl - 设置 DBD::SQLite 以支持 sqlite3 的自定义版本