正则表达式与字符串、数组处理效率
??????? 说起字符串处理效率,一般都认为使用正则速度慢。其实,完全是想当然的结果。因为,这些说法是没有经过实际检测的想当然。
??????? 要想使得PHP快速处理字符串。必须要使用的函数中,正则表达式函数是必不可少的。我们推荐,尽可能使用以下函数,以保证程序效率:
preg_match_all
preg_replace
preg_split
strtok
explode
????????使用这六个函数,可使字串处理出奇高效,特别是对于长文本处理。那么,为什么有人说正则表达式速度慢呢?
??????? 原因不外乎有以下几种:
??????? 第一、str_replace能完成的,使用preg_replace
????????第二、在for循环中使用preg_replace,则是更加致命的。
????????第三、能用preg_match_all的却只用preg_match,并在for循环中使用。
????????不用多举了。这样的实例太多了。
????????所以,我们需要注意的是:能preg_match_all,就绝对不在for循环中使用preg_match,能用preg_split则绝不使用explode,当然,能用strtok,我们也不用preg_split。
??????? 由此,就看你正则表达式的功底,以及对字串函数掌握的程度了。
?
??????? 对于数组也一样,array_filter效率相当低下,但如果preg_grep速度则是非常地快。