【PHP入門】正規表現とは? 仕組み・正規表現パターンもご紹介!

PHPを勉強している人

ジェネレータ(yield命令)について知りたいな!

上記のようなお悩みを持っている方はいないでしょうか?

この記事は上記のような疑問を解消するものとなっています。

この記事でお話すること
  1. 正規表現とは?
  2. 正規表現の基本的な仕組み
  3. 基本的な正規表現
  4. PHPをもっと学びたい方へ

PHPでは、正規表現を利用して入力内容をチェックすることができます。

ここでは正規表現とはどのようなものか、基本的な正規表現について解説していきます。

\単月定額と比べて総額最大48,000円OFF!/
学び応援キャンペーン実施中!
コスパ最高! 月額1,980円〜利用できる!

最短30秒で登録完了! 今すぐ侍テラコヤでPHPを学ぶ!

1.正規表現とは?

正規表現を利用することで、「特定の文字列が数字なのか英字なのか」等、様々なパターンをチェックすることができます。

例えば、お問い合わせフォームの電話番号、郵便番号、メールアドレスが正しく入力されているか正規表現を利用してチェックすることができます。

具体的に郵便番号を正規表現でどのようにチェックするのかを見てみましょう。

郵便番号は〒の後に「3つの数字」、「-」、「4つの数字」が並んでいます。

郵便番号を正規表現でチェックする場合、どのように記述するのでしょうか。

正規表現を利用して、[0-9]{3}-[0-9]{4}と記述することができます。

上記は先頭から「0-9の数値3桁」、「0-9の数値4桁」かどうかをチェックするという意味になっています。

正規表現を使用しない場合、何段階に分けてチェックする必要があります。

しかし、正規表現を利用することで入力内容と一致するかどうかを簡潔に記述することができます。

このように正規表現はデータが正しく入力されたかをチェックし、データの正確性を向上させる役割を担っています。




2.正規表現の基本的な仕組み

文字列に対する正規表現パターンマッチは以下のように行います。

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

上記のように左から始まりマッチした時点で終了するというのが一般的です。

3.基本的な正規表現

正規表現によって表現された文字列パターンのことを正規表現パターンと呼びます。

そして、正規表現パターンと対象の文字列が一致することをマッチすると呼びます。

正規表現パターンは「/~/」で囲む必要があります。

ここでは、よく使用される正規表現の一部を紹介します。

パターン 内容
[] いずれかの文字にマッチ /[XYZ]/の場合、X、Y、Zのいずれかにマッチするかどうかを判定します。
[0-9] 特定範囲の数値にマッチ /[0-9]/の場合、0~9のいずれかにマッチするかどうかを判定します。
※[0123456789]と記載することもできるが、[0-9]と記載したほうが、分かりやすいです。
[A-Z] 特定範囲の文字にマッチ /[A-Z]/の場合、英大文字A~Zのいずれかにマッチするかどうかを判定します。
※英小文字a~zのいずれかにマッチするかどうかは判定しません。
[a-z] 特定範囲の文字にマッチ /[a-z]/の場合、英小文字a~zのいずれかにマッチするかどうかを判定します。
※英大文字A~Zのいずれかにマッチするかどうかは判定しません。
. 任意の1文字にマッチ /r.d/の場合、「red」はマッチする。
^ 先頭にマッチ /^a/の場合、「apple」はマッチする。
$ 末尾にマッチ /e$/の場合、「apple」はマッチする。
* 直前の表現を0回以上繰り返す /ab*c/の場合、「ac」、「abc」、「abbc」はマッチする。
+ 直前の表現を1回以上繰り返す /ab+c/の場合、「abc」、「abbc」、「abbbc」はマッチする。
? 直前の表現を0回または1回繰り返す /ab?c/の場合、「ac」、「abc」はマッチする。
{n} 直前の表現をn回繰り返す /ab{2}c/の場合、「abbc」はマッチする。
{n,} 直前の表現をn回以上繰り返す /ab{2,}c/の場合、「abbc」、「abbbc」はマッチする。
{n,m} 直前のひゅうげんをn回以上m回以下繰り返す /ab{2,3}c/の場合、「abbc」、「abbbc」はマッチする。




4.PHPをもっと学びたい方へ

最後まで読んで頂きまして、ありがとうございます。

PHPをもっと学びたいという方はいないでしょうか?

上記のように考えている方にオススメの教材があります。

確かな力が身につくPHP「超」入門

\Kindle版だとお得に読める!/

確かな力が身につくPHP「超」入門」はPHPをより実践的に学ぶことができます。

コマースサイトに必須のショッピングカートやログイン処理の作成から、商品管理などを行うデータベースの設定・制御法まで、Web開発の現場で求められる知識をサンプルで体験しながら学ぶことが可能です。

そのため、PHPを一通り学んだ方にオススメできる一冊です。

是非、「確かな力が身につくPHP「超」入門」に挑戦してみてはいかがでしょうか?

以下の記事でPHPを学ぶことができるオススメの本をまとめていますので、よかったらご覧になって下さい。

Udemy

Udemy(ユーデミー)」ではPHPを学ぶことができる講座を多数取り扱っています。

Udemy(ユーデミー)」では頻繁にセールが行われており、時には半額以下(最大90%OFF)になることも。

\リーズナブルな価格で、実用的なスキルを自分のペースで学べる!/
セール時は最大90%以上OFFの超お得価格

以下の記事でPHPを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

TechAcademy

TechAcademy(テックアカデミー)」ではPHPを学ぶことができます。

無料体験も行っているので是非、体験してみてはいかがでしょうか?

\今無料相談すると先着500名様にAmazonギフトカード500円分/

TechAcademyについてまとめた記事もありますので、よかったらご覧になって下さい。




5.ポイント

ポイント
  • 正規表現を利用することで、特定の文字列が数字なのか、英字なのか、など、様々なパターンをチェックすることができます
  • 正規表現によって表現された文字列パターンのことを正規表現パターンと呼びます
  • 正規表現パターンと対象の文字列が一致することをマッチすると呼びます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です