正規表現チートシート

正規表現チートシート:構文とテスト済みパターン30選 | We.Inc

正規表現の構文を1つの表にまとめ、メール、URL、電話番号、郵便番号、パスワード、日付などのすぐ使えるパターンを30個紹介します。どれも、編集できる一致・不一致の例に対してライブで実行されます。

正規表現チートシート

正規表現は、テキストを照合するためのパターンです。\dは数字、\wは単語構成文字に一致し、+は1回以上、?は省略可能を意味し、^と$は一致を先頭と末尾に固定します。以下に、構文の全体と、一致すべき文字列と一致すべきでない文字列でライブ検証したテスト済みパターン30個を載せています。

ほとんどのパターンをカバーする6つの記号

パターンをコピーし、その横の入力欄で自分のテキストを試してみましょう。このページのすべてのパターンには、一致しなければならない例と一致してはならない例が付いており、ページがそれをブラウザー内で実行するので、一つひとつの結果を確認できます。

よくある質問

メールアドレスに最適な正規表現は?

実用的なのは^[^\s@]+@[^\s@.]+(\.[^\s@.]+)+$です。何らかのテキスト、@、そしてドットを1つ以上含むドメインという形です。珍しいけれど有効なアドレスを拒否せずに、入力ミスを見つけられます。アドレスが本当に存在するかはどの正規表現にも判断できないので、確認メールを送りましょう。

正規表現で電話番号に一致させるには?

空白、ハイフン、かっこを取り除いてから、E.164形式を確認します:^\+[1-9]\d{6,14}$。区切り文字付きで入力された米国やカナダの番号には、このページの北米用パターンを使います。国ごとに完全に確認するなら、電話番号ライブラリのほうが確実です。

正規表現の^は何を意味しますか?

角かっこの外では、^は一致をテキストの先頭(mフラグ付きなら各行の先頭)に固定します。[^0-9]のように角かっこ内の最初の文字として使うと、これらの文字以外という意味になります。

JavaScriptでは動く正規表現がPythonで動かないのはなぜですか?

方言によって細部が異なるからです。Pythonは名前付きグループを(?P<name>...)と書き、組み込みのreモジュールは\p{L}に対応しておらず、後読みは固定長しか使えません。よくある違いは、このページの言語別の表で確認してください。

最長一致と最短一致の違いは何ですか?

*や+のような最長一致の量指定子は、できるだけ多くのテキストを取り込み、その後で後退します。?を付けると最短一致になり、できるだけ少なく取り込みます。<b>x</b><b>y</b>に対して、<.+>は全体に一致し、<.+?>は<b>だけに一致します。

パターンを左から右へ読む

よくある間違い

正規表現の構文リファレンス(JavaScriptの方言)

JavaScriptのフラグ

同じ考え方をJavaScript、Python、PHPで

メールアドレス(実用版)

何らかの文字列、@、そしてドットを1つ以上含むドメイン。空白は不可。

メールアドレスを完全に検証できる正規表現はありません。実在するかを知るには確認メールを送りましょう。

Webアドレス(httpまたはhttps)

httpまたはhttps、ドットを1つ以上含むホスト、任意のポート、その後に空白を含まない任意のパス、クエリ、フラグメント。

JavaScriptでは、tryブロック内でnew URL(value)を使うほうが厳密に確認できます。

ドメイン名

英字、数字、途中のハイフンからなるラベルをドットで区切り、英字のみのトップレベルドメインで終わるもの。

URLスラッグ

小文字の英字と数字のまとまりを、1つずつのハイフンでつないだもの。

電話番号、国際形式(E.164)

プラス記号、0で始まらない国番号、合計7〜15桁の数字。空白は不可。

先に空白、ハイフン、かっこを取り除きましょう。国ごとにきちんと検証するには、電話番号ライブラリを使います。

電話番号、米国・カナダ

任意の+1、0や1で始まらない3桁の市外局番と局番、その後に4桁の数字。一般的な区切り文字に対応。

米国のZIPコード

5桁の数字。任意でハイフンと4桁の数字が続く(ZIP+4)。

英国の郵便番号

1〜2文字の英字、数字1桁、任意の英字か数字、任意の空白、その後に数字1桁と英字2文字。

形だけを確認します。実在しない番号も一部受け入れてしまいます。

カナダの郵便番号

英字、数字、英字、任意の空白、数字、英字、数字。D、F、I、O、Q、Uは使われず、WとZは先頭に来ません。

HEXカラー

#の後に3、4、6、8桁の16進数(4桁と8桁の形式は透明度を含む)。

文字種を混ぜたパスワード

12文字以上で、小文字、大文字、数字、記号をそれぞれ含むことを先読みで確認します。

文字種を混ぜることより長さのほうが重要です。現在は最低文字数だけを求め、漏えいしたパスワードの一覧と照合するチームが多くなっています。

ユーザー名

英字と数字で3〜20文字。ドットとアンダースコアは文字の間でのみ使え、連続は不可。

IPv4アドレス

0から255の数字4つをドットで区切ったもの。先頭のゼロは不可。

日付、ISO 8601(YYYY-MM-DD)

4桁の年、01〜12の月、01〜31の日。

2026-02-31も受け入れます。存在しない日を除外するには、その後で日付を解析しましょう。

時刻、24時間制(HH:MM)

00〜23の時、コロン、00〜59の分。

時刻、am・pm付きの12時間制

1〜12の時、分、その後にamまたはpm(ドットと空白は任意)。

整数

任意のマイナス記号、その後に0か先頭にゼロのない数。

小数

整数に、任意でドットと1桁以上の数字が続くもの。

桁区切り付きの価格

任意のドル記号、正しいカンマ区切り(または区切りなし)の数字、任意の2桁のセント。

0〜100のパーセンテージ

0から100の数(小数は任意)の後に%。

カード番号の形(13〜19桁)

13〜19桁の数字。任意で空白かハイフンで区切られる。

形だけの確認です。カードの検証には、Luhnチェックと決済サービスを使いましょう。

セマンティックバージョン

先頭にゼロのないMAJOR.MINOR.PATCHに、任意の-prereleaseと+buildの部分が付くもの。

UUID

8-4-4-4-12桁の16進数で、1から8のバージョン桁と標準のバリアントを持つもの。

シンプルなHTMLタグ

開始タグ、ほかのタグを含まないテキスト、対応する終了タグ(後方参照\1がタグ名を繰り返す)。

HTML全体を正規表現で解析してはいけません。DOMParserかHTMLパーサーを使いましょう。

空欄または空白のみ

空白、タブ、改行以外に何もないもの。空のフォーム入力を拒否するのに便利です。

ハッシュタグ

#の後に、英字(あらゆる文字体系)、数字、アンダースコアが続くもの。\p{L}にはuフラグが必要です。

YouTubeの動画アドレス

一般的なwatch、embed、shorts、短縮リンクの形式。グループ1が11文字の動画IDを取得します。

画像ファイル名

パスに使えない文字を含まず、一般的な画像の拡張子で終わるファイル名。

SNSのハンドル(@name)

@と、1〜15文字の英字、数字、アンダースコア。X(旧Twitter)が採用しているルールです。

単語の重複

'the the'のように2回続けて入力された単語を見つけます。アンカーがないので、テキストの途中も検索します。

(空)

一致しない

コピー

一致すべき

一致すべきでない

自分の値で試す

一致

不一致

クイックテスター

パターン

フラグ

テキスト

一致はありません。

位置 {n}:

グループ:

構文

フラグ

テスト済みパターン{n}個

絞り込み

メール、日付、電話…

その条件に一致するパターンはありません。

JavaScript、Python、PHP

2026-10にリリース、2026-11にパッチ、2027-02に予定。

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る