PHP: Preg заменить скобки? - PullRequest
       21

PHP: Preg заменить скобки?

9 голосов
/ 01 марта 2012

Каков правильный синтаксис для preg_replace только скобка в PHP?

$search = preg_replace('/\(\)/','',$search);

Спасибо

Ответы [ 4 ]

18 голосов
/ 01 марта 2012

Если вы хотите удалить ( и ) из строки $search:

$search = preg_replace('/\(|\)/','',$search);

Я думаю, что самый быстрый способ сделать это - использовать функцию strtr, вот так:

$search = strtr($search, array('(' => '', ')' => ''));
9 голосов
/ 01 марта 2012

Вот мои результаты небольшого полевого теста:

preg_replace("/\(|\)/", "", $str): 1.590735912323

preg_replace('/[\(\)]/', '', $str): 1.3762638568878

strtr($str, array('(' => '', ')' => '')): 0.84079194068909

str_replace("(", "", str_replace(")", "", $str)): 0.80222821235657

Последние два почти идентичны, как указал Дж. Бруни.

1 голос
/ 01 марта 2012

Вы имеете в виду, как это?

$search = preg_replace('/[()]/', '', $search);

Это уберет все круглые скобки без учета спаривания.

0 голосов
/ 01 марта 2012

Это правильный синтаксис, хотя preg_replace предназначен для регулярных выражений, если вы просто хотите заменить (), тогда str_replace будет в несколько раз быстрее.

Если вы хотите заменить ( или ), где бы они ни находились, вы можете использовать

preg_replace("/\(|\)/", "", $str);
...