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|b | aまたは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 | ドットが改行にもマッチ |
u | UTF-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 "無効な電話番号です。";
}
必要に応じて、さらに具体的な例や用途についてもお答えできます!