2010-11-22 16 views
1
$item = "(1) Robin Hood (hero)"; 

括弧内の文字は変更できます。文字列からの削除()

文字列の中の文字を含むすべての角括弧を文字列から削除するにはどうすればよいですか?

$item = "Robin Hood"; 

ありがとう:私たちは、これを取得する必要があり

答えて

6

としてあなたはpreg_replaceを使用することができます:あなたはまた、交換後、先頭と末尾のスペースを削除するよう

$item = preg_replace('/\(.*?\)/s','',$item); 

が見えます。
あなたはそれのようにするためにtrimを利用することができます:

$item = trim(preg_replace('/\(.*?\)/s','',$item)); 

使用正規表現は\(.*?\)です:

  • ()がグループ化に使用正規表現のメタ文字 です。リテラル と一致させるには、 の前に\を付けてエスケープする必要があります。
  • を使用して、括弧内の の任意のテキストに一致させます。 も同じことを行うことができます[^)]*
  • .デフォルトでは 改行に一致しません。 makeは改行に一致します s修飾子を使用します。それ がなければ、私たちは"(hello\nworld) Hi"
+1

あなたとstillstandingのソリューションとの違いは何で交換 を行うには失敗するだろうか? – James

+0

@ハッピー:郵便で更新しました。 – codaddict

+0

なぜ '。*?'ですか? '。*'だけでもうまくいくのではないでしょうか? ( '.'は任意の1文字にマッチし、' * 'は指定子を0回以上繰り返し、'? 'はそれらの0個以上の文字が存在するかどうかを照合します)。 –

関連する問題