PHP 字符串替换性能


php string replacement performance

我知道通常建议尽可能避免使用正则表达式,但是如果需要将 20 个左右的字符列表剥离成字符串怎么办?

做这样的事情会更划算吗

$string = "...";
$a = array('a', '1', '!' ...);
foreach($a as $char){
    $string = str_replace($char, '', $string);
}

还是使用正则表达式会更好

$string = preg_replace('#[a1!...]#', '', $string);

谢谢!

首先,str_replace()支持针和大海捞针的数组,因此通过循环运行它只是额外的过程。我也会说回复正则表达式与字符串与字符串。在几乎所有情况下,我都会逐串。正则表达式可能会给出误报和正负。如果配方不正确,并且很快就会变得令人沮丧。谨慎使用它,正则表达式也增加了更多的过程,因为它必须与给定的规则匹配或不匹配某些内容。其中字符串到字符串是如果它匹配它匹配。

但这只是我对此事的看法。