• 締切済み

正規表現について

PHP5.2.4を使用しています。 任意の数の引数がある文字列をpreg_matchを使ってマッチさせたいのですが、 例えば"ENUM(ab,cd)"は ab と cd の2つの引数があるとします。 次のようなパターン文字列まではアイデアとして浮かんだのですが、 引数の最後は , がないので当然ですがマッチしません・・・ どのようにパターン文字列を記述すれば良いのでしょうか? $str = "ENUM(ab,cd)"; if (preg_match("/ENUM\(([^\,]+\,)+\)/", $str, $match)) { print "{$match[0]}<br>\n"; }

みんなの回答

回答No.1

もし、正規表現にこだわっていないのであれば、 if(preg_match("/ENUM\((.+?)\)/", $str, $match)){ $params = explode(",", $match[1]); } でいけると思いますが、いかがでしょう。

takagoo100
質問者

お礼

ご返答ありがとうございます。 なるほど、たしかにこのやり方でもできるのですが、 こちら事で申し訳ないのですが、他の抽出パターンでも一貫して正規表現 を使ってやってるので、できれば正規表現の方が知りたいのですが