PHPで正規表現を使用した文字列のチェック
正規表現の可能性は、検索と置換だけでは
尽きません。また、文字列に正規表現との
一致があるかどうかをチェックする関数
preg_matchも存在します。この関数の
最初のパラメータは正規表現を受け取り、
2番目のパラメータは検索対象の文字列を
受け取ります。
この場合、複数の一致があったとしても、
関数は最初の一致のみを見つけて動作を
終了します。したがって、関数は1
または0を出力し、「文字列に
探しているものがあるかないか」という
質問に対する答えとして使用されます。
1を返せば存在する(何回かは不明)、
0を返せば存在しないことを意味します。
例を見てみましょう。文字列に、文字
'a'が1回以上繰り返される
部分文字列があるかどうかを
チェックしてみます:
<?php
echo preg_match('#a+#', 'eee aaa bbb'); // 1を出力
?>
今度は、私たちの文字列には探しているもの
がなく、関数は0を出力します:
<?php
echo preg_match('#a+#', 'eee bbb'); // 0を出力
?>
文字列に3桁の数字が連続して
存在するかどうかを判定してください。
渡された文字列がhttpで
始まるかどうかを判定してください。
渡された文字列がhttpまたは
httpsで始まるかどうかを
判定してください。
渡された文字列が拡張子txt、
html、phpの
いずれかで終わるかどうかを
判定してください。
渡された文字列が拡張子jpg
またはjpegで終わるかどうかを
判定してください。