一人前のエンジニアになるまで

日々の日常や勉強したところを記録するブログサイト

PHP正規表現の使い方まとめ

PHP正規表現の使い方まとめ

フォームを使うことが多いPHPでは、正規表現はよく使用されることがあるため基本理解を5分で理解しよう。 無理だけど... 電話番号を判定したり、メールアドレスが正しいか確認したり、YouTubeのURLからapiデータを引っ張ってきたりと正規表現は様々なところで活躍する。

正規表現(Regular Expression)とは?

まずは、正規表現そのものについて簡単にご紹介しよう。PHPではフォームのチェックやインポートデータの確認など、ユーザがWebから入力した何かのチェックに使うことが多い。 この文章のこの部分だけ抜き出したいというとき 例)東京情報大学 〒265-8501 千葉県千葉市若葉区御成台4-1 東京大学    〒113-8654 東京都文京区本郷7丁目3−1 この中の郵便番号のみを抜き出したい時などは 「郵便番号って〒があって、その後に3つの数字があって、次に-が書いてあって、その後に4つの数字がある部分だよね」 これをプログラムが判断できるように下のが正規表現です。  

正規表現の基本的なしくみ

文字列に対する正規表現パターンマッチは、下記のように動作する。

  • ステップ1:文字列の先頭を調べる。
  • ステップ2:次にその位置でマッチしなかった場合は、次の文字に移動して再度調べる
  • ステップ3:途中でマッチした場合は、その位置でマッチング作業を終える
  • ステップ4:マッチするものがなければ、文字列を最後まで調べて終わる

 

正規表現の例

php関数はpreg_matchを使う。

<?php
echo preg_match("/c[aeiou]t/", "I love my cat");
echo preg_match("/c[aeiou]t/", "I love my dog");
?>

preg_matchは第一引数の正規表現と第二引数のテキストが一致していたら、tureを返してくれる関数です。

/c[aeiou]t/

正規表現にあたる。 これは「1文字目がcで、2文字目がa,e,i,o,uのどれかで、3文字目がt」の文章があるかどうか?という正規表現だ。「cat」はまさしくそれにあたるが、"I love my dog"にはそれに当たる文字が無い。

参照URL(https://eng-entrance.com/php-regularex