什么是一个病理性的正则表达式,它会炸毁许多解析器(在时间和内存上)?
哪个解析器呢?加分规则越基本、越标准,非恶意用户就越可能无辜地使用它。
请随意发布实际的时间和内存数据以及解析器版本。
(我似乎还记得Perl中过多的lookbehind断言或(edit:)回溯据说是这样做的,或者至少过去是这样。还有别的吗?)
最佳答案
改编自文章中的第一个示例:
perl -e '$n=29; ("a" x $n) =~ (("a?" x $n).("a" x $n))'
我的系统需要40多秒。然后做
$n++
的指数增加乐趣…