正規表現は記号を使用し、文字列の範囲を指定して、パターンが一致するものを検索します。
ereg()関数は、記号の「^」や「$」を使用し、文字列のパターンを指定します。
<?php
$str1 = "Start is a day";
$str2 = "Please teach ending of your schedule";
if(ereg("^Start",$str1)) echo "Startから始まる文字列です。<br />n";
if(ereg("schedule$",$str2)) echo "scheduleで終わる文字列です。<br />n";
?>
Startから始まる文字列です。 scheduleで終わる文字列です。
上記のスクリプトでは、「if(ereg("^Start",$str1))」の「^」は先頭を意味し、「Start」から始まる文字列に一致します。すなわち、文字列の先頭に「Start」が存在した場合、echoの「Startから始まる文字列です。」が出力されます。
if(ereg("schedule$",$str2))の「$」は末尾を表し「schedule」で終わる文字列に一致します。すなわち、文字列の末尾に「schedule」が存在した場合、echoの「scheduleで終わる文字列です。」が出力されます。
1~9、a~zなどの文字列と一致するものを検索することができます。
<?php
$str1 = "PHP Product";
$str2 = "12349-5826-31322";
if(ereg("[a-z]",$str1)) echo "$str1はaからzまでの小文字を含みます。<br />n";
if(ereg("[0-9]-",$str2)) echo "$str2は0~9までの数字とハイフンを含みます。<br />n";
?>
$str1はaからzまでの小文字を含みます。 $str2は0~9までの数字とハイフンを含みます。
上記のスクリプトでは変数$str1はif(ereg("[a-z]",$str1))の、「[](角かっこ)」によりアルファベット文字列の範囲を指定しています。この場合は[a-z]としているので、「a~z」までがマッチする範囲となります。すなわち変数$str1に、一個でも小文字のアルファベットが存在している場合、echoの「$str1はaからzまでの小文字を含みます。」が出力されます。
$str2 はif(ereg("[0-9]-",$str2))の「[](かっこ)」と「-(ハイフン)」により文字列の範囲を指定しています。この場合は「0~9」と「-」がマッチする範囲となります。すなわち、変数$str2に「0~9」のいずれかの数字と「-」が存在した場合、echoの「$str2 は0~9までの数字とハイフンを含みます。」が出力されます。
文字列の中で、繰り返し使用される文字と一致させるためには、「{}(中かっこ)」によって出現回数を指定します。
<?php
$str = "ABCDEFG123HIJK";
if(ereg("[0-9]{3}",$str))
echo "$strは0から9までの数字を3つ含む文字列です。<br />n";
?>
$strは0から9までの数字を3つ含む文字列です。
上記のスクリプトでは、「if(ereg("[0-9]{3}",$str))」の{3}により文字列の中で、繰り返し使用される回数を「3回」と指定しています。すなわち、変数$strに3つ以上「0~9」の数字が存在した場合、echoの「$strは0から9までの数字を3つ含む文字列です。」が出力されます。
文字の出現を回数ではなく範囲で指定する場合は、「,(カンマ)」で区切り指定します。
<?php
$str = "ABCDEFG123HIJK2589LMN";
if(ereg("[0-9]{1,10}",$str))
echo "$strは0から9までの数字を1個から10個含む文字列です。<br />n";
?>
$strは0から9までの数字を1個から10個含む文字列です。
上記のスクリプトでは、if(ereg("[0-9]{1,10}",$str))の{1,10}によって出現回数を範囲で指定しています。