• ベストアンサー

phpの正規表現

phpの正規表現で困っています。 下記のような文で括弧で囲まれた文字列だけを消したいのですが、 (ABC)あいうえお(DEF) /(.*)/で置換すると文章が全部消えてしまいます。 「あいうえお」だけを残したいのですがうまくいきません。何方か教えてください。お願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

正規表現は基本、最長一致でマッチします。 ですので 質問の例ですと (ABC) (ABC)あいうえお(DEF) で長い方の後者の方になります。(. は任意の一文字なので ")"も含まれます) 前者でマッチさせたいなら /\([^)]*\)/ かな。

ebios0981
質問者

お礼

基本最長一致なんですね。。知りませんでした ご回答をヒントになんとかできそうです。ありがとうございます!

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

括弧は正規表現の特殊文字なので文字として使うときはエスケープして、/\(.*\)/ としてください。

ebios0981
質問者

補足

すみません質問に書いていませんでした。エスケープはしています。 全角の括弧の場合も同じ結果になってしまいます。

関連するQ&A