ereg()関数は、引数の文字列とパターンの一致するものを検索します。
ereg(pattern,string,[regs])
<?php
$str = "XENOPHY";
if(ereg("^X",$str))
echo "xFrameworkPX";
?>
xFrameworkPX
上記スクリプトでは、変数$strの値「XENOPHY」が「Xから始まる文字列」に該当するので、メッセージのxFrameworkPXがechoで出力されます。
ereg_replace()関数は、引数にある文字列と一致する文字列を置換します。
ereg_replace(pattern,replacement,string)
<?php
$str = "PHP Product";
echo ereg_replace("PHP","MySQL",$str);
?>
MySQL Product
上記のスクリプトでは、変数$strに入っている「PHP」と一致する文字列を「MySQL」に置き換えています。ただ、ereg_replace()関数は変数に入っている文字列が「PHP」で、引数に入っている文字が「php」だと置換することができません(変数に入っている文字列が置換されずそのまま出力される)。文字のパターンマッチングをする際に、大文字、小文字の区別なく置換したい場合には、eregi_replace()関数を使用します。
<?php
$str = "php Product";
echo eregi_replace("PHP","MySQL",$str);
?>
MySQL Product
上記スクリプトでは、「$str = "php Product";」の「php」が小文字で「eregi_replace("PHP","MySQL",$str);」の「PHP」が大文字ですが、実行結果から大文字小文字の区別なく置換できていることがわかります。
split()関数は、引数にある文字列を区切り文字で分割して配列として返すことができます。
split(pattern,string,[limit])
<?php
$str = "January February March April May June July August September October November December";
$year = split(" ",$str); //半角の空白で区切っている
echo "$year[0], $year[1], $year[2], $year[3], $year[4], $year[5], $year[6], $year[7], $year[8], $year[9],
$year[10] ,$year[11]";
?>
January, February, March, April, May, June, July, August, September, October, November ,December
上記のスクリプトでは、変数$strに入っている文字列を「" "(半角の空白)」を区切り文字とし、分割をして、それらの結果を配列としてそれぞれ$yearに格納されています。
PHPの正規表現で使用される特殊文字と言われるものに関して紹介していきます。
特殊文字の前に記述することによって、特殊文字が通常の文字として認識されます。逆に、通常の文字の前に記述すると通常の文字が特殊文字として認識されます。
¥$ 通常の文字の「$」として認識と認識される。
¥t //特殊記号のタブ文字として認識される。
*の前にある文字が、0もしくは連続して存在している場合に、その全ての文字列に一致する。
Ju* 「June」のJu、「July」のJに一致する。
+の前の文字が一個、もしくは連続して存在する場合に、その全ての文字列に一致する。
u+ 「June」の「u」1文字、「Juuuuuuune」にある全ての「u」に一致する。
?の前にある文字が一個、もしくは存在しないものに一致します。
June? 「Jun」、「June」に一致します。
.は改行記号「¥n」以外の文字に一致します。
論理式にあるorに相当します。
string1|string2 文字列string1またはstring2のどちらかと一致する。