「押さえておきたいWeb知識」のnoteを開設しました!

[必見!] PHP preg_match_all関数とは? 分かりやすく解説します!

正規表現のpreg_match_all関数を利用することで繰り返し正規表現検索することができます。

このページでは正規表現とはどのようなものか、preg_match_all関数とはどのようなものか、preg_match_all関数のサンプルプログラムについて解説していきます。

是非、最後まで読んで頂ければ、幸いです。

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

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

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

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

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

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

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

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

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

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

正規表現をもっと詳しく知りたい方は以下の記事も是非ご覧になって下さい。

[PHP入門] 正規表現とは? 仕組み・正規表現パターンもまとめてみました!




2.preg_match_all関数とは?

preg_match_all関数を使用することで繰り返し正規表現検索を行うことができます。

一方、preg_match関数は一つの実行結果のみを返します。

つまり、preg_match関数は複数のマッチする文字列があった場合でも、一番始めにマッチした文字列のみの表示となります。

このため、すべてのマッチする文字列を見つけたい場合、preg_match_all関数を利用する必要があります。

preg_match_all関数の構文は以下の通りです。

int preg_match_all (string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset]]])

引数

$pattern

正規表現パターン

$subject

検索対象の文字列

&$matches

検索結果が代入される配列

$flags

動作フラグ

注意

$flagsに「PREG_PATTERN_ORDER」を指定することでパターン全体、サブマッチパターン、パターン単位に結果がまとめられます。

$offset

検索開始位置




3.preg_match_all関数のサンプルプログラム

それでは実際にpreg_match_all関数のサンプルプログラムを見てみましょう。

上記は$stringを先頭から「0-9の数値3桁」と「0-9の数値4桁」の正規表現パターンにマッチしているかどうかを繰り返しチェックするサンプルプログラムとなっています。

PREG_SET_ORDERを指定することで、$dataにはマッチした文字列から順に格納されていきます。

結果は以下の通りです。

このようにpreg_match_all関数を使用することで簡単に正規表現検索ができるので便利です。




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

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

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

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

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

この本ではPHPの基礎構文だけでなく、商品管理システムを作りながら、PHPをより実践的に学ぶことができます。

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

是非、挑戦してみてはいかがでしょうか?

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

[初心者~中級者向け] PHPを学ぶことができるおすすめの本

Udemy

UdemyではPHPを学ぶことができる講座を多数取り扱っています。

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

[2021年最新版] Udemy(ユーデミー) おすすめのPHP講座

TechAcademy

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

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

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

プログラミングスクール TechAcademy(テックアカデミー)とは? 特徴・口コミをまとめてみました!




5.ポイント

ポイント
  • preg_match_all関数は繰り返し正規表現検索を行うことができます

コメントを残す

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