Каков правильный синтаксис для preg_replace
только скобки в PHP?PHP: Preg заменяет скобки?
$search = preg_replace('/\(\)/','',$search);
Спасибо
Каков правильный синтаксис для preg_replace
только скобки в PHP?PHP: Preg заменяет скобки?
$search = preg_replace('/\(\)/','',$search);
Спасибо
Предполагая, что вы хотите, чтобы удалить как (
и )
из $search
строки:
$search = preg_replace('/\(|\)/','',$search);
Я думаю, что самый быстрый способ сделать это с помощью strtr
функция, как это:
$search = strtr($search, array('(' => '', ')' => ''));
Это правильный синтаксис, хотя preg_replace предназначен для регулярных выражений, если вы просто хотите заменить ()
, тогда str_replace будет в два раза быстрее.
Если вы хотите заменить (
или )
где бы они ни находились, вы можете использовать
preg_replace("/\(|\)/", "", $str);
Да, но вам придется использовать str_replace дважды, хотя правильно, по одному для каждой из круглых скобок? – Norse
Правда, но я ставлю 5 $, он все равно будет быстрее: P –
@Tony: функция 'strtr' может сделать несколько« str_replaces »сразу. Я использую его в базовом классе шаблонов ... вместо loop + str_replace, только один вызов strtr ... –
Вы имеете в виду, как это?
$search = preg_replace('/[()]/', '', $search);
Это разделит все круглые скобки независимо от их сопряжения.
круглые скобки с учетом регистра? :) –
Обычно это только начало ... сила привычки. :) – Nilpo
Вот мои результаты теста мало поля:
preg_replace("/\(|\)/", "", $str): 1.590735912323
preg_replace('/[\(\)]/', '', $str): 1.3762638568878
strtr($str, array('(' => '', ')' => '')): 0.84079194068909
str_replace("(", "", str_replace(")", "", $str)): 0.80222821235657
Последние два почти идентичны, как отметил Дж Бруни.
Добавьте это к эталону: 'preg_replace ('/ [\ (\)] /', '', $ str);' - и дайте нам знать результаты. –
Итак, пара str_replaces быстрее, чем один strtr ... если бы массив можно было избежать в пользу пары параметров строки, возможно, это должно быть быстрее ... 'strtr ($ str, '()', '') '- но это не желаемое поведение ... также, имея несколько замен, конечно strtr победит! :-) –
Да, диапазон выглядит быстрее. strstr и str_replace почти одинаковы, я не могу найти заметную разницу в текущем тесте, они идут вверх или вниз каждый раз .. strstr будет более изящным решением. –
Ах, спасибо. Это работало. – Norse
Вам не нужна дополнительная упаковка '()' она предназначена для экспорта шаблона, который в этом случае не нужен. –
@ Тони: действительно! Я их удалил. –