POSIX 正規表現関数
PHP Manual

ereg

(PHP 4, PHP 5)

ereg正規表現によるマッチングを行う

説明

int ereg ( string $pattern , string $string [, array &$regs ] )

pattern で指定した正規表現 により、大文字小文字を区別して string を検索します。

パラメータ

pattern

大文字小文字を区別する正規表現。

string

入力文字列。

regs

pattern の括弧でくくられた部分文字列に マッチし、かつこの関数が 3 番目の引数 regs を 指定してコールされた場合、マッチした部分が配列 regs に格納されます。

$regs[1] は最初の左括弧が始まる部分文字列を保持、 $regs[2] は二番目の左括弧が始まる部分文字列を保持、 といったようになっています。$regs[0] は マッチした文字列全体のコピーを保持しています。

返り値

string の中で pattern がマッチした場合にはマッチした文字列の長さを返し、マッチしなかった場合 またはエラーとなった場合は FALSE を返します。

オプションのパラメータ regs が渡されなかったり マッチした文字列の長さが 0 だったりした場合は、この関数は 1 を返します。

例1 ereg() の例

以下のサンプルコードは、ISO フォーマット(YYYY-MM-DD) で格納されている 日付を DD.MM.YYYY フォーマットで表示するものです。

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"$date$regs)) {
    echo 
"$regs[3].$regs[2].$regs[1]";
} else {
    echo 
"Invalid date format: $date";
}
?>

注意

注意: Perl 互換の正規表現構文を使用する preg_match() のほうが、多くの場合 ereg() よりも速く動作します。

注意: PHP 4.1.0 以前(4.1.0 を含む)のバージョンでは、$regs にはちょうど 10 個の要素が代入されました。これは、実際にマッチした 括弧付きのサブ文字列が 10 より多くても少なくても同じでした。ただし、 ereg() にはより多くの部分文字列にマッチする 能力があります。マッチするものが見付からなかった場合、 $regs は、ereg() により 書き換えられません。

参考


POSIX 正規表現関数
PHP Manual