preg_match() を使用すると、文字列のルール一致を完了できます。 preg_match() 関数は、一致が見つかった場合は 1 を返し、そうでない場合は 0 を返します。オプションの 3 番目のパラメーターを使用すると、一致した部分を配列に保存できます。この機能は、データを検証するときに非常に役立ちます。
コードは次のとおりです | コードをコピー |
// パターン区切り文字の後の「i」は、大文字と小文字を区別しない検索を示します if (preg_match ("/php/i", "PHP は最適な Web スクリプト言語です。")) { print "一致するものが見つかりました。"; } 他 { print "一致するものが見つかりませんでした。"; } ?> |
現在時刻を取得する
コードは次のとおりです | コードをコピー |
//一致する必要がある文字列。 date 関数は現在時刻を返します。 「現在の時刻: 2012-04-20 07:31 am」 $content = "現在時刻:".date("Y-m-d h:ia"); //日付と時刻を一致させます。 if (preg_match ("/d{4}-d{2}-d{2} d{2}:d{2} [ap]m/", $content, $m)) { echo "一致する時刻は:" .$m[0] "n"; //"2012-04-20 07:31 am" } //日付と時刻をそれぞれ取得します if (preg_match ("/([d-]{10}) ([d:]{5} [ap]m)/", $content, $m)) { echo "現在の日付は次のとおりです:" .$m[1] "//"2012-04-20" echo "現在の時刻は:" .$m[2] "n"; }?>
|
この例では、電子メール アドレスが正しい形式であることを確認します。次に、この正規表現によって表されるさまざまなルールを見てみましょう。
たとえば、Google ホームページのタイトル コンテンツを取得したい場合、コードは次のようになります:
コードをコピー | |
$str = file_get_contents('http://www.google.com'); preg_match('/ エコー $arr[1]; ?> |
コードをコピー | |
コードは次のとおりです | コードをコピー |
配列 ( |
$matches[0] にはパターン全体に一致するテキストが含まれ、$matches[1] には最初にキャプチャされた括弧内のサブパターンに一致するテキストが含まれます。正規表現では、() はパターンを表します。パターンに一致し、この一致を取得します。取得された一致は、VBScript の SubMatches コレクションまたは JScript の $0 ~ $9 プロパティを使用して、生成された Matches コレクションから取得できます。つまり、配列内の添字 1 の値は、正規表現の /^(http://)?([^/]+)/i の最初の () の値です。配列添字 2 の値は類推によって推定されます。