PHP 正規表現

PHP

PHPで使用される正規表現(正規表現パターン)は、文字列操作やパターンマッチングに非常に便利です。以下に、PHPでよく使われる正規表現の一覧とその説明を簡単にまとめました。


1. 基本構文

  • /pattern/: PHPで正規表現を記述する際の基本形式。スラッシュ/で囲む。

2. 文字クラス

パターン説明
.任意の1文字(改行を除く)
\d数字(0~9)
\D数字以外の文字
\w英数字またはアンダースコア([a-zA-Z0-9_])
\W英数字またはアンダースコア以外
\s空白文字(スペース、タブ、改行など)
\S空白文字以外

3. 量指定子

パターン説明
*0回以上の繰り返し
+1回以上の繰り返し
?0回または1回の出現
{n}ちょうどn回の繰り返し
{n,}n回以上の繰り返し
{n,m}n回以上m回以下の繰り返し

4. アンカー(位置指定)

パターン説明
^行頭を指定
$行末を指定
\b単語の境界
\B単語の境界以外

5. グループ化と選択

パターン説明
(abc)グループ化(abcにマッチ)
(?:abc)非キャプチャグループ(マッチするが結果に含まれない)
a|baまたはbにマッチ

6. エスケープ文字

パターン説明
\特殊文字をエスケープ(例: \.はピリオド文字)

7. 特殊文字

パターン説明
[abc]a、b、cのいずれか1文字
[^abc]a、b、c以外の任意の1文字
[a-z]小文字のaからzまでのいずれか1文字
[A-Z]大文字のAからZまでのいずれか1文字
[0-9]数字の0から9までのいずれか1文字

8. フラグ(修飾子)

フラグ説明
i大文字小文字を区別しない
m複数行モード(^$が各行の先頭・末尾にマッチ)
sドットが改行にもマッチ
uUTF-8モードを有効にする
xパターン内の空白を無視(可読性向上)

9. PHPでの正規表現関数

PHPには正規表現を扱うための関数がいくつかあります。

関数名説明
preg_match()パターンに一致するかどうかを確認
preg_match_all()全ての一致を取得
preg_replace()パターンに一致した部分を置換
preg_split()正規表現を使って文字列を分割
preg_grep()配列の中からパターンに一致する要素を取得

10. 実例

  • メールアドレスの検証
  $pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/";
  $email = "example@test.com";
  if (preg_match($pattern, $email)) {
      echo "有効なメールアドレスです。";
  } else {
      echo "無効なメールアドレスです。";
  }
  • 電話番号の検証
  $pattern = "/^\d{3}-\d{4}-\d{4}$/";
  $phone = "090-1234-5678";
  if (preg_match($pattern, $phone)) {
      echo "有効な電話番号です。";
  } else {
      echo "無効な電話番号です。";
  }

必要に応じて、さらに具体的な例や用途についてもお答えできます!

最新情報をチェックしよう!