1

現在、私は使用しています

$str = preg_replace("/\([^\)]+\)/", "", $str); // Remove () and Content
$str = preg_replace("/\[[^\)]+\]/", "", $str); // Remove [] and Content
$str = preg_replace("/\{[^\)]+\}/", "", $str); // Remove {} and Content
$str = preg_replace("/[^a-zA-Z0-9]/", "", $str);  // Remove all non-alphanumeric characters

これらを単一の正規表現ステートメントに組み合わせる方法があるかどうか疑問に思っていました

4

1 に答える 1

5

|これらを組み合わせるために使用できます。

(\([^\)]+\)|\[[^\]]+\]|\{[^\}]+\})|[^A-Za-z0-9])

しかし、あなたの場合、私は通常、文字列を調べて手動で解析します。
「状態変数」($paren_open、、 )を使用して$brace_open$curly_opencharを無視するかどうかを確認します。

(すべての文字を処理する必要があるため)高速に見えなくても、正規表現はより複雑な処理を実行するため、正規表現よりもはるかに高速です。


資力:

于 2012-04-04T16:08:05.687 に答える