Skip to content
正規表現チートシート
Tools

正規表現チートシート

新着

正規表現のトークンとフラグを検索できるリファレンス。

Live regex tester

Type a pattern and a test string — matches highlight instantly, with every capture group broken out below.

/ /
Flags
Matches
Capture groups

Common regex patterns

Battle-tested patterns — load one into the tester to see it run, or copy it straight out.

Email address
[\w.+-]+@[\w-]+\.[\w.-]+
URL (http/https)
https?:\/\/[^\s]+
US phone number
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Date (YYYY-MM-DD)
(\d{4})-(\d{2})-(\d{2})
Time (24-hour)
([01]?\d|2[0-3]):[0-5]\d
IPv4 address
\b(?:\d{1,3}\.){3}\d{1,3}\b
Hex color
#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b
Slug / username
[a-z0-9]+(?:-[a-z0-9]+)*
Whole number / integer
-?\d+
Strong password (8+, mixed)
(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}
Duplicate word
\b(\w+)\s+\1\b
Trailing whitespace
[ \t]+$

Regex cheat sheet

Every token, grouped with a quick example. Search by symbol or keyword; click any token to copy it.

Regex flavors: JavaScript, Python, Java, PCRE & grep

The tester above runs JavaScript regex. Most syntax is shared — here's what differs between engines.

FeatureJavaScriptPython (re)JavaPCRE / grep
Named group(?<name>…)(?P<name>…)(?<name>…)(?P<name>…)
Dotall (. matches \n)s flagre.DOTALL / (?s)Pattern.DOTALL(?s)
Ignore casei flagre.IGNORECASE / (?i)(?i) flag(?i) / grep -i
Lookbehind(?<=…) ES2018+SupportedSupportedgrep -P only
Backslash in source/\d/ literalr"\d" raw string"\\d" doubled\d
Find every matchstr.matchAll(/…/g)re.findall()Matcher.find()grep -o
POSIX class [[:digit:]]use \d insteaduse \d insteadsupportedsupported

Runs entirely in your browser. Nothing is uploaded.

例付き正規表現チートシート — ライブテスター内蔵

この正規表現チートシートでは、すべての正規表現トークンをすぐに検索でき、ライブテスターと組み合わせてパターンをその場で試せます。パターンを入力し、フラグを選んで、テスト文字列を貼り付けると、マッチ箇所がリアルタイムでハイライトされ、各キャプチャグループの内容も一覧表示されます。

インストール不要・アカウント登録不要:正規表現リファレンスはすべてブラウザ上で動作し、テストしたテキストが外部に送信されることはありません。広告なし、ログインなし、テスト文字列のサイズ制限なし。

例付きで整理された全正規表現トークン

リファレンスには実際によく使う構文をすべて収録しています:文字クラス\d\w\s[a-z] などカスタムセット)、アンカーと境界^$\b)、量指定子*+?{n,m} と遅延形式)、グループと選択先読みと後読みフラグ g i m s u y、そしてリテラルのドットやスラッシュに必要なエスケープ。

各エントリには短くて具体的な例が付いています — \bcat\b は単語「cat」にはマッチしますが「category」の中の「cat」にはマッチしません — ので意味がすぐに定着します。記号やキーワードで正規表現トークンを検索し、クリックしてコピーできます。

パターンを作りながらリアルタイムでテスト

静的なチートシートは実際にパターンが動くかどうかを教えてくれません。組み込みの正規表現テスターはパターンをリアルタイムでコンパイルし、サンプルテキスト内のすべてのマッチをハイライト表示して、それぞれの番号付き・名前付きキャプチャグループを一覧表示します。

グローバル・大文字小文字無視・マルチライン・ドットオール・Unicode・スティッキーフラグを切り替えながら結果の変化を確認できます。パターンが無効な場合は、サイレントエラーではなく平易なエラーメッセージが表示されます。パターンがリアルタイムでマッチするのを見ることが、正規表現を最も速く習得する方法です。

よく使う正規表現パターン — コピーしてすぐ使える

繰り返し登場するパターンがあります — メールアドレス、URL、電話番号、ISO日付、IPv4アドレス、16進数カラーコード、強力なパスワードチェックなど。「共通パターン」セクションにはそれぞれの検証済みバージョンが用意されており、テスターに読み込んでサンプルテキストで動作確認したり、コードにそのままコピーしたりできます。

これらは万能ルールではなく、実際のデータに合わせてカスタマイズするための実用的な出発点です。だからこそ、自分のデータでテストすることが重要なのです。

regex101.com・regexr.com との違い

regex101.comはウェブ上で最も人気の高い正規表現専用ツールで、それには理由があります。6つの正規表現フレーバー(PCRE、Python re、Golang、Java、.NET、JavaScript)をサポートし、トークンごとの解説パネルを表示し、マッチ履歴を記録します。複雑な本番パターンをデバッグしたり、PHPとPythonで同じ動作をするか検証したりする場合は、regex101が適切なツールです。regexr.comはコミュニティによるパターンライブラリを備えた同様のツールです。

このUtiloKitのページはワークフローの別のポイントに位置します。検索可能なトークンリファレンステーブルとライブテスターを同じ画面上に組み合わせ、「大まかに何が必要かはわかるが正確な構文が思い出せない」という状況に最適化されています。ページを開き、トークンを調べ、テスト文字列を貼り付けて、エディタに戻る — タブ切り替えなし、アカウントなし、広告なし。後読みが (?<=…)(?<!…) かを確認するためだけに毎日regex101を何十回も開く開発者にとって、専用の検索可能なリファレンスは明らかに速いです。両方使いましょう:深いデバッグはregex101、素早い参照はこのページで。

正規表現フレーバー:JavaScript・Python・Java・PCRE・grep

正規表現の構文のほとんどは移植可能ですが、エンジンによって細部が異なります。このテスターはJavaScript正規表現(Node.jsおよびブラウザと同じフレーバー)を使用しています。Pythonreモジュールは r"\d+" のような生文字列を必要とし、グループには (?P<name>…) を使います。Javaでは文字列リテラル内でバックスラッシュを二重にする必要があります。PCRE(PHP、grep -P)は最も機能が豊富で、POSIX grep -E には独自のエスケープの癖があります。

フレーバー表では、名前付きグループ・ドットオール・大文字小文字無視・後読み・「全マッチ検索」を各エンジンで比較しているので、Pythonの正規表現パターンをJavaScriptに移植する場合、あるいはその逆も、予期しない問題なく対応できます。

最長マッチと最短マッチ、そのほかの落とし穴

ほぼ全員が引っかかる点が2つあります。まず、量指定子はデフォルトで最長マッチ(貪欲)です:.+はできる限り多くの文字を取得するため、HTMLタグ1つにマッチさせるには通常最短マッチ(遅延).+? が必要です。次に、メタ文字のエスケープ忘れ — 裸の . はどの文字にもマッチしますが、\. はリテラルのドットにマッチします。金額の正規表現なら \d+\.\d{2} が必要です。

チートシートを開いたまま作業すれば、こうした落とし穴に驚かされることはなくなります。

プライベート・即時・無料

インストール不要・アカウント登録不要。すべての検索、マッチ確認、コピー操作はブラウザ上でローカルに実行されます — パターンもテストデータも端末の外に出ることはありません。この正規表現チートシートをブックマークして、トークンを確認したいときやパターンを素早く検証したいときにいつでも活用してください。

Frequently asked questions

正規表現(regex)とは何ですか?具体例を教えてください。

正規表現(regex)は、文字列の集合を表すコンパクトなパターンで、テキストの検索・マッチ・置換に使われます。たとえば、パターン \d{3}-\d{4} は電話番号の断片「555-1234」にマッチします。\d は「数字」を意味し、{3} は「ちょうど3回繰り返す」を意味します。正規表現は、ほぼすべてのプログラミング言語やコードエディタで、検索・置換、フォームバリデーション、ログ解析に使われています。このページ上部のライブテスターで、どんなパターンでも今すぐ試せます。

正規表現の基本トークンは何ですか?

基本的な構成要素は次のとおりです:.(改行以外の任意の文字)、\d(数字)、\w(単語文字 — 英字・数字・アンダースコア)、\s(空白文字)、アンカーの ^ (先頭)と $ (末尾)、量指定子の *(0回以上)、+(1回以上)、?(省略可能)。たとえば \w+ は1単語全体にマッチし、\d+ は 2024 のような数値全体にマッチします。組み合わせると — ^\d+$ は数字のみの行にマッチします。このチートシート上のすべてのトークンにはコピー可能な例が付いています。

\d・\w・\s はそれぞれ何を意味しますか?

\d は0〜9の数字にマッチします。\w は単語文字(a〜z、A〜Z、0〜9、アンダースコア)にマッチします。\s は空白文字(スペース、タブ、改行)にマッチします。大文字版は否定形です:\D は数字以外、\W は単語文字以外、\S は空白以外にマッチします。たとえば「a5 b」というテキストでは、\d は「5」に、\w は「a」「5」「b」に、\s はその間のスペースにマッチします。この3つのショートハンドクラスで、日常的な正規表現パターンの大部分をカバーできます。

正規表現のアンカーとは何ですか?

アンカーは文字ではなく位置にマッチします。^ は文字列の先頭(mフラグを使うと各行の先頭)、$ は末尾、\b は単語境界、\B は単語境界以外にマッチします。たとえば ^\d+$ は数字のみで構成される文字列にマッチし、\bcat\b は単語「cat」にマッチしますが「category」の中の「cat」にはマッチしません。アンカーは文字ではなくテキスト内の位置にマッチするものですが、文字にマッチすると誤解されることがよくあります。

正規表現の量指定子とは何ですか?

量指定子は直前のトークンが何回繰り返されるかを指定します:* は0回以上、+ は1回以上、? は0回または1回(省略可能)、{n} はちょうどn回、{n,} はn回以上、{n,m} はn回以上m回以下です。デフォルトでは最長マッチ(貪欲)ですが、? を付けると最短マッチ(遅延)になります。たとえば \d{1,3} は1〜3桁の数字にマッチし、遅延の .+? はできる限り短くマッチします。遅延量指定子はHTMLタグや引用文字列のマッチに不可欠です。

グループとキャプチャグループとは何ですか?

括弧(…)はキャプチャグループを作成し、抽出や再利用が可能です — (\d{4})-(\d{2}) は「2024-06」のグループ1に年、グループ2に月をキャプチャします。量指定子のためだけにグループ化する場合は非キャプチャグループ (?:…) を、名前付きグループは (?<name>…) を使います。後方参照(\1 など)はグループ1がキャプチャした内容を再マッチし、(\w)\1 は「hello」の「ll」のような二重文字を検出します。

先読みと後読みとは何ですか?

先読み・後読み(ルックアラウンド)は、マッチを消費せずに隣接するテキストを確認するアサーションです。(?=…) は肯定の先読み、(?!…) は否定の先読み、(?<=…) は肯定の後読み、(?<!…) は否定の後読みです。たとえば \d+(?=px) は「5px」の「5」にマッチしますが「px」は含みません。(?<=\$)\d+ は「$9」の「9」に、前のドル記号を要件としてマッチします。ルックアラウンドは、現代の正規表現エンジンをPOSIXの grep と区別する機能の一つです。

正規表現のフラグとは何ですか?

フラグはパターン全体の適用方法を変更します:g(グローバル)はすべてのマッチを検索、i は大文字小文字を無視、m(マルチライン)で ^ と $ が各行にマッチ、s(ドットオール)で . が改行にもマッチ、u はフルUnicodeを有効化、y(スティッキー)は固定位置でのマッチです。JavaScriptでは閉じスラッシュの後に付けるので、/cat/gi は「Cat」も「CAT」もテキスト全体でマッチします。このページのテスターには各フラグのトグルボタンがあり、効果をリアルタイムで確認できます。

メールアドレス・電話番号・URLの正規表現はどう書きますか?

実用的な出発点のパターン:メールアドレス — [\w.+-]+@[\w-]+\.[\w.-]+ ;URL — https?:\/\/[^\s]+ ;日本の電話番号 — \d{2,4}-\d{2,4}-\d{4}(03-1234-5678 や 090-1234-5678 にマッチ)。これらは実用的なパターンであり、網羅的なものではありません。公式のメールアドレス標準はさらに複雑なので、必ず上部のライブテスターで実際のデータを使って動作確認してください。共通パターンリストでワンクリックで読み込めます。

正規表現で特殊文字をエスケープするにはどうすればいいですか?

メタ文字の前にバックスラッシュを付けてリテラルとしてマッチさせます。通常エスケープが必要な文字は . ^ $ * + ? ( ) [ ] { } | \ と / です。たとえば \. はリテラルのドットに、\$ はドル記号にマッチするので、\d+\.\d{2} は 19.99 のような価格にマッチします。文字クラス内ではこれらのほとんどが特殊な意味を失うため、[.] もエスケープなしでリテラルのドットにマッチします。

JavaScript・Python・Javaで正規表現の記法は異なりますか?

核心的な構文は共通ですが、細部は異なります。JavaScriptのグループ名は (?<name>…) ですが、Pythonでは (?P<name>…) を使います。Pythonは r"\d+" のような生文字列を使い、Javaは文字列リテラルでバックスラッシュを二重("\\d+")にする必要があります。ドットオールはJSではsフラグ、Pythonでは re.DOTALL、Javaでは Pattern.DOTALL です。このページのフレーバー表でPython・Java・PCRE・grepの違いをまとめているので、言語間でパターンを移植する際に役立ちます。

Pythonで正規表現を使うにはどうすればいいですか?

Pythonでは、正規表現は標準ライブラリの re モジュールに含まれています。通常はパターンを生文字列で記述し、re.search・re.findall・re.sub などの関数を呼び出します — たとえば re.findall(r"\d+", "a1 b22") は ['1', '22'] を返します。名前付きグループには (?P<name>…) を使い、match.group('name') で値を取得します。このページのトークンリファレンスはPythonの正規表現に直接適用でき、異なるのは周辺APIとフラグ名の一部だけです。

正規表現をテストするにはどうすればいいですか?

このページ上部のライブテスターを使いましょう:スラッシュの間にパターンを入力し、必要なフラグをトグルして、テスト文字列を貼り付けます。マッチはリアルタイムでハイライトされ、番号付き・名前付きキャプチャグループがすべて下に表示され、無効なパターンはサイレントエラーではなくインラインエラーメッセージが表示されます — すべてブラウザ上でローカルに動作し、貼り付けた内容は送信されません。regex101.comやregexr.comも同様に動作しますが、このページはリファレンスとテスターを1ページに統合しています。

regex101.comやregexr.comと何が違いますか?

regex101.comは深い正規表現デバッグの業界標準です — 複数のフレーバー(PCRE、Python、Java、.NET、Golang)をサポートし、パターン内のすべてのトークンの詳細な解説を提供します。regexr.comはコミュニティパターンライブラリを備えた同様のツールです。どちらも優秀な専用ツールです。このUtiloKitチートシートは異なる役割を担っています:トークンリファレンステーブルと基本ライブテスターを同じページに統合し、「調べてすぐに確認する」という場面に最適化されています。タブを切り替えずに数秒でトークンを調べて確認できます。複雑な本番正規表現のデバッグにはregex101.comのフレーバー比較と詳細デバッガーが最適ですが、開発中の素早い参照にはこのリファレンスページの方が速く、ナビゲーション不要です。

「正規表現」という名前はなぜそう呼ばれるのですか?

名前は形式言語理論に由来します。1950年代に数学者のスティーブン・クリーネが「正規集合」(単純な有限状態機械で認識できる言語)を記述し、その表記法が「正規表現」として知られるようになりました。現代の正規表現エンジンは後方参照やルックアラウンドなど、厳密に「正規」な言語を超えた機能を追加していますが、歴史的な名前はそのまま残っています。