【问题标题】:PHP preg_replace/preg_match vs PHP str_replacePHP preg_replace/preg_match 与 PHP str_replace
【发布时间】:2011-07-11 20:35:24
【问题描述】:

谁能给我一个快速的差异总结?

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    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:酒吧酒吧

    :)

    【讨论】:

    • 嗯,没有真正看到 preg_replace 的优势,似乎有点命中注定!
    • 你问的不是优势,而是两者的区别:D
    【解决方案2】:

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

    正则表达式函数允许您搜索并替换为称为regular expression非固定 模式。正则表达式有很多“风味”,它们大多相似,但在某些细节上有所不同;我们在这里讨论的是 Perl Compatible Regular Expressions (PCRE)。

    如果它们在您看来相同,那么您应该使用str_replace

    【讨论】:

    • 嗯,在你不知道的模式中动态搜索很好,但如果你知道模式(即使在运行时),你可以立即创建按钮并执行 str_ 除非你想要不同的部分同时捕获。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我自己没有测试过,但可能值得测试。但根据一些消息来源,preg_replacePHP 7 及更高版本上要快 2 倍。

      在此处查看更多信息:preg_replace vs string_replace

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多