プロが教えるわが家の防犯対策術!

phpの正規表現で困っています。
下記のような文で括弧で囲まれた文字列だけを消したいのですが、

(ABC)あいうえお(DEF)

/(.*)/で置換すると文章が全部消えてしまいます。
「あいうえお」だけを残したいのですがうまくいきません。何方か教えてください。お願いします!

A 回答 (2件)

正規表現は基本、最長一致でマッチします。


ですので
質問の例ですと

(ABC)
(ABC)あいうえお(DEF)

で長い方の後者の方になります。(. は任意の一文字なので ")"も含まれます)
前者でマッチさせたいなら
/\([^)]*\)/
かな。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/02/01 23:48

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

この回答への補足

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

補足日時:2012/02/01 22:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!