在 PHP 中编译正则表达式

2022-08-30 09:40:54

在PHP中,有没有办法编译正则表达式,以便可以将其与多个字符串进行比较而无需重复编译过程?其他主要语言可以做到这一点 - Java,C#,Python,Javascript等。


答案 1

Perl兼容正则表达式库可能已经针对您的用例进行了优化,而没有像其他语言那样提供正则表达式类:

此扩展维护已编译正则表达式的全局每线程缓存(最多 4096 个)。

PCRE简介

这就是Imran描述的研究修饰符如何在调用之间存储编译的表达式。


答案 2

preg 正则表达式可以使用大写的 S(研究)修饰符,这可能是您要查找的内容。

http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

S

当一个模式要被多次使用时,值得花更多的时间分析它,以加快匹配所花费的时间。如果设置了此修饰符,则执行此额外分析。目前,研究模式仅对没有单个固定起始字符的非锚定模式有用。


推荐