int preg_match_all (string pattern, string subject, array matches [, int
order])
subjectにおいて patternで指定した正規表現にマッチする かどうかを検索し、orderで指定した 順番で matchesに結果を代入します。
最初にマッチするものが見つかった後、最後にマッチしたパターンの後から 検索が続行されます。
orderは、次の2つのどちらかとなります。
$matches[0] がパターン全体にマッチする配列であり、 $matches[1] が最初の括弧で括られたサブパターンにマッチする 文字列の配列であり、といった順番となります。
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this a test</div>",
$out, PREG_PATTERN_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n"
|
<b>example: </b>, <div align=left>this is a test</div> example: , this is a test |
$matches[0]は最初にマッチした組の配列であり、 $matches[1]は二番目にマッチした組の配列であり、 といった順序となります。
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this a test</div>",
$out, PREG_SET_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n"
|
<b>example: </b>, example: <div align=left>this is a test</div>, this is a test |
orderが指定されない場合、PREG_PATTERN_ORDER を仮定します。
パターンがマッチした総数を返します。または、マッチしなかったか、 エラーが発生した場合にfalseを返します。
例 1. テキストから全ての電話番号を得る
|
例 2. HTMLタグにマッチするものを見付ける(greedy)
|
matched: <b>bold text<b>
part 1: <b>
part 2: bold text
part 3: <b>
matched: <a href=howdy.html>click me<a>
part 1: <a href=howdy.html>
part 2: click me
part 3: <a>
|
preg_match(), preg_replace(), preg_split()も参照下さい。