正規表現早見表|メタ文字一覧と実用パターン集
正規表現(regex)のメタ文字・略記文字クラス・量指定子・アンカー・グループ・先読み後読み・バックリファレンスを網羅。メールアドレス・電話番号・URL・IPv4・郵便番号・日付・UUID等の実用パターン12種と、その場で試せる正規表現テスター付き。JavaScript/Python/PHP/Ruby対応のチートシート。
📌 頻出する実用パターン TOP12
| 用途 | 正規表現 | 例 |
|---|---|---|
| 数字のみ | ^[0-9]+$ | 12345 |
| 英字のみ | ^[a-zA-Z]+$ | Hello |
| 半角英数字 | ^[a-zA-Z0-9]+$ | abc123 |
| メールアドレス | ^[\w.+-]+@[\w-]+\.[\w.-]+$ | foo@bar.com |
| URL | ^https?://[\w./?=&-]+$ | https://example.com |
| 電話番号(日本) | ^0\d{1,4}-\d{1,4}-\d{4}$ | 03-1234-5678 |
| 郵便番号(日本) | ^\d{3}-\d{4}$ | 100-0001 |
| IPv4アドレス | ^(\d{1,3}\.){3}\d{1,3}$ | 192.168.1.1 |
| 日付(YYYY-MM-DD) | ^\d{4}-\d{2}-\d{2}$ | 2026-05-17 |
| 時刻(HH:MM:SS) | ^\d{2}:\d{2}:\d{2}$ | 12:30:45 |
| UUID v4 | ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ | xxxxxxxx-... |
| HTMLタグ | <[^>]+> | <div> |
※ オレンジ網掛けは特に頻出。下記のテスターでパターンと文字列を入れて即試せます。
🧪 正規表現テスター
パターンとテスト文字列を入力 → リアルタイムでマッチ結果をハイライト表示。JavaScript の RegExp で実装。
検索結果
上の欄にメタ文字を入力してください。クイックボタンからも選べます。
このページについて
正規表現(regex)はテキストパターンを表現する強力なツールで、検索・置換・バリデーション・データ抽出などプログラミングの多くの場面で使われます。本ページではメタ文字32種と実用パターン12種を網羅し、その場で試せる正規表現テスターも併設しました。
Web開発者・データエンジニア・QAエンジニア・学習中のプログラマまで、「メアドの正規表現は?」「貪欲マッチって何?」「グループの参照ってどう書く?」といった現場で頻発する疑問に即答できる構成です。JavaScript・Python・PHP・Ruby・Goで共通動作するパターンを中心に選定しています。
正規表現メタ文字 完全一覧
カテゴリ別にメタ文字・略記・量指定子・アンカー・グループを網羅。検索ツールで記号入力で該当行をハイライト。
| 記号 | カテゴリ | 意味 | 使用例 |
|---|---|---|---|
| データ読み込み中... | |||
カテゴリ別の解説
メタ文字と文字クラス
. は任意の1文字、[abc] は a/b/c のいずれか、[^abc] は否定、[a-z] は範囲指定。略記の \d \w \s はそれぞれ「数字・単語構成文字・空白文字」を表します。大文字版 \D \W \S は否定形。
量指定子(繰り返し)
*(0回以上)・+(1回以上)・?(0/1回)・{n}(ちょうどn回)・{n,m}(n〜m回)。末尾に ? を付けると非貪欲マッチ(*? +? ??)になり、最短マッチを取ります。HTMLタグ抽出では非貪欲が必須です。
アンカー(位置)
^ は行頭、$ は行末、\b は単語境界、\B は単語境界以外。複数行モード(mフラグ)では ^/$ が各行の頭末に変わります。
グループとキャプチャ
(...) はキャプチャグループで \1 \2 で参照可、置換では $1 $2。(?:...) は非キャプチャ(参照しないグループ化)。(?P<name>...) (Python) / (?<name>...) (JS) で名前付きキャプチャ。
先読み・後読み(lookaround)
位置だけ判定してマッチに含めない高度な機能。(?=abc) 肯定先読み、(?!abc) 否定先読み、(?<=abc) 肯定後読み、(?<!abc) 否定後読み。『円が後ろに続く数字』のような複雑な抽出で威力を発揮します。
フラグ(オプション)
g 全体検索、i 大小無視、m 複数行、s dotall(. を改行にも対応)、u Unicode、y 粘着。複数指定可: /pattern/gims など。
広告
プログラミングスキルを活かしたい方へ
正規表現を使いこなせる方は、Web開発・データエンジニア・QA・SRE等で高い市場価値があります。IT専門エージェント
TechGo(テックゴー)
なら、Web系・SaaS・スタートアップから大手SIerまで幅広く対応。年収アップ・キャリア相談が無料。
よくある質問
Q1. \d と [0-9] の違いは?
A. 基本的に同じですが、Unicodeモード(uフラグ)では \d が ASCII数字のみにマッチするのに対し、JavaScript では \d は常に [0-9] と等価です。Python は re.UNICODEモードで \d が全角数字や他言語の数字にもマッチします。明示的に半角数字だけ取りたいなら [0-9] が安全です。
Q2. 貪欲マッチと非貪欲マッチの違いは?
A. 貪欲(greedy)は可能な限り長くマッチ(* + ?)、非貪欲(lazy)は可能な限り短くマッチ(*? +? ??)。例えば <.*> と <.*?> の違いは、<a><b> という文字列に対し、貪欲は<a><b> 全体を、非貪欲は <a> のみをマッチします。HTMLタグ抽出では非貪欲が必須です。
Q3. メールアドレスの完璧な正規表現はある?
A. RFC 5322完全準拠の正規表現は500文字超になり実用的でないため、現実的には ^[\w.+-]+@[\w-]+\.[\w.-]+$ などで十分です。完璧を目指すなら正規表現だけでなく、メール送信時の到達性確認(double opt-in)を併用するのが定石です。
Q4. JavaScriptとPHPで正規表現の書き方は違う?
A. 基本構文は共通ですが、JSは /pattern/flags のスラッシュ記法、PHPは preg_match('/pattern/flags', $str) の文字列記法。後読み(?<=...)はJSが新しい仕様で動かない環境も(ES2018+)。Pythonは (?P<name>...) の名前付きグループが独特です。
Q5. 先読み(lookahead)はどんな時に使う?
A. パターンの前後の文脈を条件にしつつ、マッチ対象に含めたくないときに使います。例えば \d+(?=円) は『円が後ろに続く数字』にマッチしますが、円自体はキャプチャに含まれません。価格抽出やパスワード強度チェック(英大小数字混在等)で使います。
Q6. 正規表現が遅い時の対処法は?
A. 主因はバックトラック爆発です。.* や .+ の連続使用を避け、可能な限り [^abc]+ など否定文字クラスで明示。非貪欲(.*?)を使う、文字クラスを限定する、アンカー(^ $)を活用するのが基本対策。最悪のパターンは (a+)+ のような『ネスト量指定子』で、ReDoS攻撃の対象になります。
Q7. 改行を含むテキストにマッチさせるには?
A. . は通常改行にマッチしないので、s フラグ(dotallモード)を使います。/pattern/s で . が改行も含めて任意文字となります。または [\s\S]+ のように『空白と非空白』を組み合わせる方法も。JavaScriptでは ES2018+ で /s フラグが使えます。
Q8. 大文字小文字を区別しない方法は?
A. i フラグ(case-insensitive)を使います。例: /hello/i は Hello・HELLO・hELLo 等すべてにマッチ。一部だけ大小無視したい場合は (?i)pattern(?-i) のインラインフラグを使う方法もあります(言語による)。
Q9. キャプチャグループと非キャプチャグループの違いは?
A. (...) はキャプチャグループで、\1 \2 で参照したり、置換時に $1 $2 で取り出せます。(?:...) は非キャプチャグループで、グループ化のみ行い参照できません。参照不要なグルーピングには非キャプチャを使うとパフォーマンスが向上します。
Q10. 正規表現で日本語にマッチさせるには?
A. ひらがな[-ゟ]、カタカナ[゠-ヿ]、漢字[一-鿿]、半角カナ[・-゚]のUnicode範囲を使います。Pythonなら正規表現に re.UNICODE フラグ、JavaScriptなら u フラグ + \p{Script=Han} のようにUnicodeプロパティが使えます(ES2018+)。
関連する早見表
- Linuxコマンド早見表 — grep/sed/awkで使う正規表現
- HTTPステータスコード — ログ解析の組み合わせに
- サブネットマスク — IPv4正規表現と関連
- ITエンジニア年収アップガイド — キャリア戦略
関連規格・参考資料
- ECMAScript Language Specification (ECMA-262) — JavaScript正規表現の仕様
- POSIX.2 Basic/Extended Regular Expressions — Unix系の標準
- Perl Compatible Regular Expressions (PCRE) — PHP/多くの言語の基盤
- RFC 5234「ABNF」 — 構文記法(参考)
- MDN Web Docs / Python re module / regex101.com
最終更新: 2026-05-17