PHP preg_replace / preg_match vs PHP str_replace

时间:2011-03-09 12:06:47

标签: php preg-replace preg-match str-replace

有人可以快速总结一下差异吗?

在我看来,他们都做同样的事情?

由于

3 个答案:

答案 0 :(得分:42)

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:bar fighters,preg_replace:bar barhters

:)

答案 1 :(得分:13)

str_replace只会将另一个固定字符串替换为固定字符串,速度会快得多。

正则表达式函数允许您搜索并替换为名为regular expression非固定模式。有许多口味"正则表达式大多相似但有一定的细节不同;我们在这里讨论的是Perl兼容正则表达式(PCRE)。

如果它们看起来一样,那么您应该使用str_replace

答案 2 :(得分:4)

str_replace搜索纯文本,而preg_replace搜索模式。