如何在PHP中使用正确的语法来仅替换括号?
$search = preg_replace('/\(\)/','',$search);
谢谢。
如何在PHP中使用正确的语法来仅替换括号?
$search = preg_replace('/\(\)/','',$search);
谢谢。
(
和)
:$search = preg_replace('/\(|\)/','',$search);
我认为最快的方法是使用strtr
函数,像这样:
$search = strtr($search, array('(' => '', ')' => ''));
以下是我进行的一项小型现场测试的结果:
preg_replace("/\(|\)/", "", $str): 1.590735912323
preg_replace('/[\(\)]/', '', $str): 1.3762638568878
strtr($str, array('(' => '', ')' => '')): 0.84079194068909
str_replace("(", "", str_replace(")", "", $str)): 0.80222821235657
最后两个几乎完全相同,正如J. Bruni所指出的。
preg_replace('/[\(\)]/', '', $str);
- 并告诉我们结果。 - J. Brunistrtr($str,'()',' ')
-但这不是期望的行为...另外,有几个替换,肯定是strtr胜出! :-) - J. Bruni$search = preg_replace('/[()]/', '', $search);
这是正确的语法,尽管 preg_replace 是用于正则表达式的,但如果您只想替换 ()
,那么 str_replace 会快几倍。
如果您想在任何地方替换 (
或 )
,可以使用以下代码:
preg_replace("/\(|\)/", "", $str);
strtr
函数可以一次性进行多个“str_replace”操作。我在一个基本的模板类中使用它……不需要循环和 str_replace
,只需一个单独的 strtr
调用即可…… - J. Bruni
()
,因为它是用于导出模式,而在这种情况下是不需要的。 - Tony Bogdanov