答えて
はあなたが$search
文字列から(
と)
の両方を削除すると仮定ありがとう:
$search = preg_replace('/\(|\)/','',$search);
私はこれを行うための最速の方法を使用していると思いますstrtr
関数のように:
()
を交換したい場合は、その後str_replaceは数回高速である、正規表現のためですが、適切な構文である
$search = strtr($search, array('(' => '', ')' => ''));
。
あなたがどこにいても(
または)
を交換したい場合は、あなたがこのように意味
preg_replace("/\(|\)/", "", $str);
ええ、str_replaceを右端に2つ使用しなければならないでしょう。 – Norse
真ですが、私は5ドルであればまだ速いと考えています:P –
@トニー: 'strtr'関数は、一度にいくつかの" str_replaces "を作ることができます。私は基本的なテンプレートクラスで使用します...ループ+ str_replaceの代わりに、ただ1つのstrtr呼び出し... –
を使用することができますか?
$search = preg_replace('/[()]/', '', $search);
これは、ペアリングに関係なくすべてのかっこを削除します。ここで
大文字小文字を区別しない括弧? :) –
これはちょうど始まりです...習慣の力。 :) – Nilpo
少しフィールドテストの私の結果されていますJ.ブルーニは指摘として
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
この場合は不要なパターンをエクスポートするために、追加のラッピング()を行う必要はありません。 –
@トニー:確かに!私はそれらを削除しました。 –