[PHP-users 22972]ereg関数について教えて下さい

ごう newsreader @ go.fam.cx
2004年 8月 12日 (木) 12:39:47 JST


こんにちは、ごうと申します。
現在windows2000proにPHP4.3.8を入れて試しております。
PHPのマニュアルにあるereg関数の以下の例文を試していたのですが、
<?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";
}
?>
とある$dateに"2004-8-12"と値を入れると
12.8.2004 と返ってきますが
$dateに"200456-8-234"と値を入れると
23.8.0456と返ってきます。
また、$dateに"00-8-12"と値を入れると
Invalid date format:00-8-12と返ってきます。
正規表現の[0-9]{4}は4桁の数字を意味していると思うのですが4桁以上の数字が入っ
てもelse以下に分岐しないのは何故か理解に苦しんでおります。
どなたか、何故このような結果が返ってくるのか教えて頂けないでしょうか。
初歩的な質問で申し訳ありませんが、どうぞ宜しくお願い致します。




PHP-users メーリングリストの案内