subject
を検索し、
pattern
に指定した正規表現にマッチした
すべての文字列を、flags
で指定した
順番で、matches
に代入します。
正規表現にマッチすると、そのマッチした文字列の後から 検索が続行されます。
pattern
検索するパターンを表す文字列。
subject
入力文字列。
matches
この場合、$matches[0] は 1 回目のマッチングによるもので、
$matches[0][0]
はパターン全体にマッチしたテキスト、
$matches[0][1]
は第 1 のサブパターンにマッチしたテキスト、
といったようになります。同様に、$matches[1]
は 2 回目の
マッチングによるものといったようになります。
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 |
このフラグを設定した場合、各マッチに対応する文字列のオフセットも返されます。
これにより、返り値は配列となり、配列の要素 0 はマッチした文字列、
要素 1 は subject
における
マッチした文字列のオフセット値となることに注意してください。
flags
を指定しない場合は、
PREG_PATTERN_ORDER が指定されたことになります。
offset
通常、検索は対象文字列の先頭から開始されます。
オプションのパラメータ offset
を使用して
検索の開始位置を指定することも可能です。
注意:
offset
を用いるのと、 substr($subject, $offset) を preg_match_all()の対象文字列として指定するのとは 等価ではありません。 これは、pattern
には、 ^, $ や (?<=x) のような言明を含めることができるためです。 これに関する例については、 preg_match() を参照してください。