preg_matchの利用方法
PHPのマニュアルより
int preg_match ( string pattern, string subject [, array matches [, int flags]])
patternで指定した正規表現により subjectを検索します。
matchesが指定された場合、検索結果が代入されます。 $matches[0]はパターン全体にマッチしたテキストが代入され、 $matches[1]は最初の括弧付きのサブパターンにマッチしたテキスト が代入され、といったようになります。
flagsには以下のフラグを指定できます。
PREG_OFFSET_CAPTURE
このフラグが設定された場合、マッチする度に付随する文字列のオフ セットも返されます。これにより、返り値は配列となり、その各要素 はマッチした文字列を要素0、 subjectの中でのその文字列オフセットを要 素1とする配列となることに注意して下さい。 このフラグは、PHP 4.3.0 以降で利用可能です。
flagsパラメータは、PHP 4.3.0 以降で利用可能です。
preg_match()は、pattern がマッチした回数を返します。これは、0回(マッチせず)または1回となり ます。これは、最初にマッチした時点でpreg_match() は検索を止めるためです。逆にpreg_match_all()は、 subjectの終わりまで検索を続けます。 preg_match()は、エラーが発生した場合にFALSEを 返します。
となっていますが、よく意味がわからないので、私なりに理解した内容を説明します。
機能1
文字列変数 $subject="0123456789"に、文字列 '456'が存在するかを確認するには
$rc=preg_match('/456/',$subject);とし、存在する場合$rcが1存在しない場合0となる。
機能2
文字列変数 $subject="0123456789"に、文字列 '123'と'789'にはさまれた文字を探すには、
$rc=preg_match('/123(.*)789/',$subject,$matches);とし、存在する場合$rcが1存在しない場合0となる。
また、存在する場合、(上記の例では)$matches[0]に'123456789'が入り、$matches[1]には'456'が入ることになる。
正規表現を詳しく知るためには
http://jp2.php.net/manual/ja/ref.pcre.php
http://jp2.php.net/manual/ja/pcre.pattern.modifiers.php
http://jp2.php.net/manual/ja/pcre.pattern.syntax.php
を参照することになるのだが。。。。
難しい!!