脚本宝典收集整理的这篇文章主要介绍了php – preg_match()和preg_replace()慢吗?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您使用20个preg_match调用,那么您可以通过仔细观察实际的正则表达式来减少该数字的几率.正则表达式,特别是PErl正则表达式,非常强大,非常值得了解它们的时间.它们往往更慢的原因只是因为正则表达式必须被解析,并且被“翻译”到相当多的分支和循环在一个低水平.如果你想用一个大写字符替换所有小写字母,那么你可以使用一个正则表达式,但是在PHP中,它将如下所示:
preg_replace('/a/','A',$string);
看看表达式,第一个参数:它是作为参数传递的字符串.将解析此字符串(解析时,分隔符被检查,创建匹配字符串,然后重复字符串,每个字符与模式(在这种情况下为a)进行比较,如果子字符串匹配,则替换它.
看起来像一个支票,特别是考虑到最后一步(比较子串和替换匹配)是我们真正想要的.
$string = str_replace('a',$string);
只是这样,没有在正则表达式被解析和验证时执行额外的检查.
不要忘记,preg_match还构造了一个匹配的数组,构造数组也不是免费的.
简而言之:正则表达式更慢,因为表达式被解析,验证,最终被转换成一组简单的低级指令.
请注意,在某些情况下,人们使用爆炸和内爆来进行字符串操作.这也创建了一个不是空闲的数组.考虑到你之后不久就爆发了相同的阵列.也许另一个选择是更可取的(在某些情况下,preg_replace可以在这里更快).基本上:正则表达式需要额外的处理,简单的字符串函数不需要.但是当有疑问的时候,只有一种方法是绝对确定的:设置一个测试脚本
以上是脚本宝典为你收集整理的php – preg_match()和preg_replace()慢吗?全部内容,希望文章能够帮你解决php – preg_match()和preg_replace()慢吗?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。