3
  • 如何检查 Ruby 2.0 onigmo(或 1.9 oniguruma)正则表达式是否包含诸如灾难性回溯之类的低效率?

  • 如何按照内部步骤对字符串尝试 Ruby 2.0 或 (1.9) 正则表达式匹配?

4

1 回答 1

3

根据此页面,Regexbuddy 允许检测它们:

Regexbuddy 是宽容的,因为它检测到它正在转圈,并中止匹配尝试。其他正则表达式引擎(如 .NET)将永远运行,而其他正则表达式引擎将因堆栈溢出而崩溃(如 Perl,5.10 版本之前)。

http://www.regular-expressions.info/catastrophic.html

(不确定信息的最新情况)

还发现了这个相关的问题:

你如何调试正则表达式?

对于 ruby​​,您似乎还可以启用其他编译标志:

在设置了几个特殊的编译器标志后,从源代码重新编译了 Ruby 2.0 (ruby-head):ONIG_DEBUG_COMPILEONIG_DEBUG_MATCH

http://patshaughnessy.net/2012/4/3/exploring-rubys-regular-expression-algorithm

于 2013-06-30T08:54:36.803 回答