这两天一直在思考,正则表达式的消耗点在哪里。总结与分析了一下,如下:
我们先来看看正则表达式的工作流程:
1 . 正则表达式需开启正则表达式引擎。(由各自语言的编译引擎开启)
2 . 编译正则表达式,把它转换成本机代码例程。
3 . 寻找正则匹配的起始点。(这点似乎可通过算法进行优化,类似算法可参照KMP算法)。
4 . 以下就是匹配的工作了,不是本文重点,故不细述。
以上便是系统的主要损耗点,其中认为起始点的寻找所用的算法对性能影响尤为巨大。
附:本机代码例程:百度百科解释为:指计算机编程代码,它被编译成用来运行一个特殊的处理器和特殊的指令集。(我们可以理解为:语言系统为了应对本语言的正则表达式,而为本机的正则表达式所创建的特定的代码集合,该代码集合主要是处理对应的处理器和指令集。)