スペック早見表

正規表現早見表|メタ文字一覧と実用パターン集

正規表現(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まで幅広く対応。年収アップ・キャリア相談が無料。

TechGo

よくある質問

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+)。

関連する早見表

関連規格・参考資料

  • 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