WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート preg_matchのキャプチャグループを連想配列で受け取る

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

preg_matchの3番目引数に変数を渡すと、その変数でマッチしたテキストを参照できます。パターン内で()でグルーピングするとそれぞれのグループに$matches[1]とか$matches[2]でアクセスできます。


$str = 'foobar: 12345';
preg_match('/(\w+): (\d+)/', $str, $matches);

var_dump($matches[1]);
var_dump($matches[2]);
これで問題ないのですが、()のグループが多いと何番目とかわかりづらいし、後で増えたりするとめんどくさいです。そこでパターンに下のように書くと連想配列を受け取れます。

$str = 'foobar: 12345';
preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

var_dump($matches['name']);
var_dump($matches['digit']);

$matchesの中には元の通りの数字の配列も入ってるので、テキストが多い場合多用するとメモリの無駄遣いになるかも・・・
まあ、気にするほどでもないと思うけど。
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。