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

-


Topページ  >  お勉強  >  PHP  >  正規表現によるマッチングを行う 

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

PHPで、正規表現による、文字列のマッチング処理・抜き出し処理を行う場合は、ereg、eregiを使用します。

eregは大文字小文字を区別します。
eregiは大文字小文字の区別をしません。





1. マッチングを行う場合の使用例です。

※eregiに関しては、使い方は全く同じなので割愛します。

// 連続した4つの数字が存在するかどうかのマッチングを行っています。
// 文字列 '0123456789' に4連続の数字が存在しているので、「マッチ」と表示されます。
if (ereg('[0-9]{4}', '0123456789') == true) {
    print 'マッチ';
} else {
    print 'アンマッチ';
}

// 文字列 '012a345b678c9' には4連続の数字は存在していないので、「アンマッチ」と表示されます。
if (ereg('[0-9]{4}', '012a345b678c9') == true) {
    print 'マッチ';
} else {
    print 'アンマッチ';
}


2. 抜き出しを行う場合の使用例です。

結果を抜き出すには、第3引数に配列変数を渡します。
また、正規表現文字列の抜き出したい部分を括弧でくくります。

// 結果を格納する配列変数。
$resultArray = array();

// 第3引数に配列変数を渡します。
ereg('([0-9]{4}):([0-9]{3})', '0123:4567:89', $resultArray);

print $resultArray[0];    // 0123:456 と表示される
print $resultArray[1];    // 0123 と表示される
print $resultArray[2];    // 456 と表示される




count = ereg( pattern, targetString, [ resultArray ] );


count マッチした場合、true(マッチ数)を返します。
マッチしなかった場合は、false(null)を返します。
pattern 正規表現文字列を指定します。
targetString マッチング元の文字列を指定します。
resultArray ※省略可能です
ここで指定した配列変数に、結果が格納されます。

$resultArray[1] は最初の括弧で囲まれた正規表現に該当する文字列を保持、 $resultArray[2] は2番目の括弧で囲まれた正規表現に該当する文字列を保持、 $resultArray[3] は3番目の……といったようになっています。
$resultArray[0] は マッチした文字列全体のコピーを保持しています。





Topページ  >  お勉強  >  PHP  >  正規表現によるマッチングを行う 






-