【发布时间】:2011-07-11 20:35:24
【问题描述】:
谁能给我一个快速的差异总结?
在我看来他们都做同样的事情?
谢谢
【问题讨论】:
标签: php preg-replace preg-match str-replace
谁能给我一个快速的差异总结?
在我看来他们都做同样的事情?
谢谢
【问题讨论】:
标签: php preg-replace preg-match str-replace
str_replace 替换特定出现的字符串,例如“foo”只会匹配并替换:“foo”。 preg_replace 会做正则表达式匹配,例如“/f.{2}/”会匹配替换“foo”,还可以匹配“fey”、“fir”、“fox”、“f12”等。
[编辑]
自己看看:
$string = "foo fighters";
$str_replace = str_replace('foo','bar',$string);
$preg_replace = preg_replace('/f.{2}/','bar',$string);
echo 'str_replace: ' . $str_replace . ', preg_replace: ' . $preg_replace;
输出是:
str_replace:酒吧战士,preg_replace:酒吧酒吧
:)
【讨论】:
str_replace 只会将一个固定字符串替换为另一个固定字符串,而且速度会快得多。
正则表达式函数允许您搜索并替换为称为regular expression 的非固定 模式。正则表达式有很多“风味”,它们大多相似,但在某些细节上有所不同;我们在这里讨论的是 Perl Compatible Regular Expressions (PCRE)。
如果它们在您看来相同,那么您应该使用str_replace。
【讨论】:
str_replace 搜索纯文本出现,而preg_replace 搜索模式。
【讨论】:
我自己没有测试过,但可能值得测试。但根据一些消息来源,preg_replace 在 PHP 7 及更高版本上要快 2 倍。
在此处查看更多信息:preg_replace vs string_replace。
【讨论】: