リファレンストップへ PHP | mb_ereg_search_getregs使用した環境 PHP 5.2.13 正規表現に最後にマッチした結果文字列を配列で取得します。サンプルは以下のようになります。 mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_regex_encoding('UTF8'); $str = "あいう0えおか1きく2け3こ"; $reg = "([0])|([1])"; mb_ereg_search_init($str, $reg); while (mb_ereg_search()) { var_dump(mb_ereg_search_getregs()); echo "<br />"; } このサンプルの正規表現では、0と1それぞれグループ化し、orでマッチを行っています。 結果は以下のようになります。 array(3) { [0]=> string(1) "0" [1]=> string(1) "0" [2]=> bool(false) } array(3) { [0]=> string(1) "1" [1]=> bool(false) [2]=> string(1) "1" } この関数が返す配列は、正規表現グループ単位で一要素として扱われます。 グループ別にマッチしていない場合はfalseが格納されており、 マッチしている場合には、該当する要素位置に マッチした部分文字列が格納されています。 mb_ereg_search_regs()とよく似ていますが、 mb_ereg_search_regsはマッチの検証と検索開始位置の移動を同時に行うのに対し mb_ereg_search_getregsは最後にマッチした結果を取得する点で異なります。 |
|