PHP使用哪种正则表达式算法?

Boj*_*les 9 php regex algorithm pcre

根据文章,在阅读了本文后,关于两种不同类型的正则表达式算法(Perl 5.8.7和Thompson NFA),后者比前者快〜1,000,000倍.我每天使用PHP,并且使用正则表达式,所以我想知道PHP使用哪种算法.

我发现了这个问题,但它只适用于JavaScript.其中一个答案表明JavaScript使用Thompson NFA算法,但这当然会因实现而异.我认为PHP可能已经转向使用更快的算法,当它转移到它的PCRE功能集时,弃用这些ereg_*东西.

我查看了PHP PCRE文档,据我所知,它没有告诉我它使用的算法.PCRE对我来说,首字母缩略词告诉我它使用Perl Compatible Regular Expressions,所以我假设它使用Perl样式算法.

PHP使用哪种正则表达式算法?它是"Perl 5.8.7风格",还是使用更快的Thompson NFA算法,还是完全使用另一个算法?它甚至可以使用Perl后端来运行它的表达式吗?

如果PHP 确实使用Perl样式算法,究竟是什么?我正在寻找与其他算法相关的抽象定义/解释.

Jon*_*uhn 5

从手册:

http://www.php.net/pcre:

正则表达式(Perl兼容)

http://www.php.net/manual/en/intro.pcre.php:

PCRE库是一组函数,它们使用与Perl 5相同的语法和语义实现正则表达式模式匹配,只有一些差异(见下文).当前实现对应于Perl 5.005.