更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/7/3 | JJI | 関数の記事が長いため、記事を分割 分割に伴い、リンク先の修正 |
2021/7/17 | JJI | 正規表現のよく使用するパターンを追記 |
2021/8/21 | JJI | ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
正規表現は、複数文字列に一致するパターンを1つの形式で表現できる方法です。
正規表現を使用すれば、ある特定の文字列のパターンを検索した場合、1つの形式で表現することができます。
例えば、日本の携帯電話番号(例:090-1234-5678)は次の形式になっています。
- 090、080、070の3桁の数字開始する
- 上記の番号の後は半角ハイフン(-)で区切られた0~9の任意数字4桁が2つ続く
携帯電話番号に一致しているかどうか調べたい場合、正規表現を使用すれば次の形式で表現できます。
^0[7-9]0-\d{4}-\d{4}
この正規表現を使用したサンプルプログラムは次の通りです。
サンプルプログラムの中に書いている正規表現の構文・関数はこの後に説明します。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】正規表現<br>\n";
$match = "/^0[7-9]0-\d{4}-\d{4}/";
$str1 = "090-1234-5678";
echo "$str1:" . preg_match($match, $str1) . ":<br>\n";
$str1 = "090-123-5678";
echo "$str1:" . preg_match($match, $str1) . ":<br>\n";
$str1 = "050-1234-5678";
echo "$str1:" . preg_match($match, $str1) . ":<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_06_01.php<br>
【PHP】正規表現<br>
090-1234-5678:1:<br>
090-123-5678:0:<br>
050-1234-5678:0:<br>
正規表現の構文
正規表現を使用するには、正規表現の構文を知っておく必要があります。
構文は大量にあるため、全てを覚えることは難しいです。
構文のパターンを理解しておいて実際に使用する場合は構文の解説ページを見ながら使えるようにすることで大丈夫です。
この記事では代表的な構文について説明します。
記事の内容が長いため、詳細は次の記事を見てください。
よく使用する関数
正規表現でよく使用する関数は次の通りです。
関数 | マルチバイト関数 | 説明(PHPマニュアル抜粋) |
---|---|---|
preg_filter | – | 正規表現による検索と置換を行う |
preg_grep | – | パターンにマッチする配列の要素を返す |
preg_match_all | – | 繰り返し正規表現検索を行う |
preg_match | mb_ereg | 正規表現によるマッチングを行う |
preg_replace | mb_ereg_replace | 正規表現検索および置換を行う |
preg_split | mb_split | 正規表現で文字列を分割する |
正規表現関数その1
次の正規表現関数についてサンプルプログラムで説明します。
- preg_filter
- preg_grep
詳細はこちらを見てください。
正規表現関数その2
次の正規表現関数についてサンプルプログラムで説明します。
- preg_match
- mb_ereg
詳細はこちらを見てください。
正規表現関数その3
次の正規表現関数についてサンプルプログラムで説明します。
- preg_match_all
- preg_replace
- mb_ereg_replace
詳細はこちらを見てください。
正規表現関数その3
次の正規表現関数についてサンプルプログラムで説明します。
- preg_split
- mb_split
詳細はこちらを見てください。
正規表現でよく使用するパターン
正規表現でよく使用するパターンについて次の記事で紹介します。
最後に
この記事では正規表現について説明しました。
正規表現は理解するのが難しいのですが、理解できるようになるとコードを簡単に書くことができます。
最初から正規表現の全てを理解する必要はありません。
この記事や他の情報を参考にしながら少し覚えるようにしてください。
コメント