subject を検索し、 pattern に指定した正規表現にマッチした すべての文字列を、flags で指定した 順番で、matches に代入します。
正規表現にマッチすると、そのマッチした文字列の後から 検索が続行されます。
flagsは、以下のフラグの組み合わせとなります。 (PREG_PATTERN_ORDER を PREG_SET_ORDER と組み合わせて使用することは 無意味ですので注意してください。)
$matches[0] はパターン全体にマッチした文字列の配列、 $matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字列の配列、 といった順番となります。
<?php |
この例の出力は以下のようになります。
<b>example: </b>, <div align=left>this is a test</div> example: , this is a test |
$out[0]は、パターン全体にマッチした文字列の配列を有しており、 $out[1]は、タグで囲まれた文字列の配列を有しています。
$matches[0]は 1 回目のマッチングでキャプチャした値の配列、 $matches[1]は 2 回目のマッチングでキャプチャした値の配列、 といった順序となります。
<?php |
この例の出力は以下のようになります。
<b>example: </b>, example: <div align="left">this is a test</div>, this is a test |
この場合、$matches[0] は 1 回目のマッチングによるもので、 $matches[0][0] はパターン全体にマッチしたテキスト、 $matches[0][1] は第 1 のサブパターンにマッチしたテキスト、 といったようになります。同様に、$matches[1]は 2 回目の マッチングによるものといったようになります。
このフラグを設定した場合、各マッチに対応する文字列のオフセットも返されます。 これにより、返り値は配列となり、配列の要素 0 はマッチした文字列、 要素 1 は subject における マッチした文字列のオフセット値となることに注意してください。 このフラグは、PHP 4.3.0 以降で利用可能です。
flags を指定しない場合は、 PREG_PATTERN_ORDER が指定されたことになります。
通常、検索は対象文字列の先頭から開始されます。 オプションのパラメータ offset を使用して 検索の開始位置を指定することも可能です。 offsetパラメータは、PHP 4.3.3 以降で使用できます。
注意: offset を用いるのと、 substr($subject, $offset) を preg_match_all()の対象文字列として指定するのとは 等価ではありません。 これは、pattern には、 ^, $ や (?<=x) のような言明を含めることができるためです。 これに関する例については、 preg_match() を参照してください。
パターンがマッチした総数を返します(ゼロとなる可能性もあります)。 または、エラーが発生した場合に FALSE を返します。
preg_match(), preg_replace() および preg_split() も参照してください。