求php 字符替换php正则表达式式

php里字符串替换的函数有str_replace()、str_ireplace()、substr_replace()、preg_replace()、strtr()等几个,程序员在写程序的时候往往会根据自己的习惯以及实际情况选用其中一个或多个。这几个函数虽然都有字符串替换的功能泹它们无论从语法到作用,还是速度和效率上都有所不同所以并非在任何场合都可以使用它们。

在字符串替换的函数里str_replace()的使用率是最高的,它的用法也比较简单而preg_replace()的使用率相对来说比较低,因为它需要你懂得写php正则表达式式而php正则表达式式有时候并不容易写。

str_replace()与preg_replace()的鼡法场合是不同的str_replace被替换(查找)的内容是固定的、确定的,当然可以使用变量但是变量也表示固定的、确定的内容,比如可以完成紦所有的\n替换为

等场合而preg_replace被替换(查找)的内容是用规则来描述的,比如可以把所有的<和>之间的内容(HTML代码)替换掉当然preg_replace也可以用来替换固定内容。

两者比较执行效率方面谁更好呢?这就涉及到速度问题了有人测试发现,str_replace速度要比preg_replace快一些但好像没有某些人说的快4倍那么多。10w次的两个词替换结果表明:str_replacece 耗时0.38 secpreg_replace 耗时0.97sec。

php程序里有很多功能是可以用不同的函数来实现的,除了上述几个之外可能大家也未曾注意过,比如很久之前就分享过的一篇文章:

所以在我们选择使用什么函数的时候我们最好知道一下那些函数的执行效率如何,这樣才能写出性能更出色的程序


}

用php正则表达式式测试工具测试php正則表达式式:/front-end/854

}

有个问题怎么把一个字符串中特定的字符串替换掉。举例:把字符串:abc fdab ertDe fda Abc fdd 中abc替换掉其中abc不区分大小写,替换之后字符串为:fdab ertDe fda fdd

当时立马想到两种策略preg_replace正则替换preg_split分割合并。哎哎可当时没有个手册在手,总是没有勇气尝试这里show下代码吧,看来以后真要留心了上代码吧:

这种方式有些取巧,主要使用strtr来規避正则偏离了别人的目的,也不是种好方法!

这次关于正则的问题是该好好反思,虽然正则学了很多也写了些。可总是用的时候看手册不停地重试重写,不能了然于胸心中对其有些怯意,以后应该多写多练真正做到熟悉这项基本技能。

}

我要回帖

更多关于 php正则表达式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信