- 締切済み
正規表現について
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"; }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hogehoge78
- ベストアンサー率80% (433/539)
回答No.1
もし、正規表現にこだわっていないのであれば、 if(preg_match("/ENUM\((.+?)\)/", $str, $match)){ $params = explode(",", $match[1]); } でいけると思いますが、いかがでしょう。
お礼
ご返答ありがとうございます。 なるほど、たしかにこのやり方でもできるのですが、 こちら事で申し訳ないのですが、他の抽出パターンでも一貫して正規表現 を使ってやってるので、できれば正規表現の方が知りたいのですが