【PHP】正規表現についてまとめてみた

スポンサーリンク

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、14年目エンジニアです。

この記事では、 PHPでいろんなところで使われる正規表現について

  • そもそも正規表現とは
  • 基本的な構文
  • よく使われる正規表現

と、丁寧に解説していきます。

前提条件:実行環境について

実行環境は以下の通りです。

OS Windows11
PHPのバージョン 8.2.4
XAMPPのバージョン 8.2.4

PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。

phpプログラムは

C:\xampp\htdocs

配下に、【sample.php】というファイル名で格納しています。
PHPのfilter_var関数を使ってIPアドレスかどうか判定するサンプルプログラム

そもそも正規表現とは

そもそも正規表現とは、文字列のパターンを定義して検索や置換などを行うことができるようにするための記法です。
たとえば、とある文字列に対して

  • 最初の文字が「AB」から始まるのか判定したい
  • 郵便番号のフォーマットなのか確認したい
  • カタカナだけなのか確認したい

などなど、こういうケースで便利な記法です。

基本的な構文

基本的な構文を一覧にまとめました。

構文 意味
任意の1文字
“123”や”1a3″が該当する
直前の文字列が0回以上繰り返されている
“123”や”13″が該当する
直前の文字列が1回以上繰り返されている
“123”や”1222223″が該当する
直前の文字列が0回または1回である
“13”や”123″が該当する
先頭が指定した文字列である
“123”で始まる文字列
末尾が指定した文字列である
“123”で終わる文字列
文字クラス
対象の文字列が[]で指定した文字が含まれているか

対象の文字列に”1″または”2″または”3″が含まれていること
“14”や”299″が該当する
グループ化
()で指定した文字をひとかたまりとして、対象の文字列が含まれているか

対象の文字列に”123″が含まれていること
“123123”や”44123″が該当する
OR条件
指定したパターンのうちいずれか1つに該当するか

対象の文字列に”123″または”321″が含まれていること
“123123”や”aaa321″が該当する
量指定子
{}で指定した数だけ繰り返ししているか
引数によって意味が異なる

  • {n}:指定したn回ちょうど繰り返す
  • {n,m}:n回以上m回以下繰り返す
  • {n,}:n回以上繰り返す(上限なし)

対象の文字列に”1″が2回以上4回以下繰り返されていること
“111”や”331122″が該当する

よく使われる正規表現パターン一覧

よく使われるであろう正規表現パターンを一覧にまとめました。
「正規表現」の欄でコピペでいけます( ´∀`)bグッ!

目的 正規表現 許可するパターン
数字のみか 文字列が0〜9の数字だけ
英字のみか 文字列が大文字小文字の英字だけ
ハイフンありの郵便番号か 例:”111-1111″
日付(YYYY-MM-DD) 例:”2025-01-01″
yesまたはno 例:”yes”
画像の拡張子かどうか 例:”sample.png”

まとめ:正規表現をつかってみよう!

以上がPHPで正規表現をまとめてみた!でした!
正規表現は、さまざまな場面で使われてます。
ぜひ試してみてください!

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

タイトルとURLをコピーしました