正規表現の構文を1つの表にまとめ、メール、URL、電話番号、郵便番号、パスワード、日付などのすぐ使えるパターンを30個紹介します。どれも、編集できる一致・不一致の例に対してライブで実行されます。
正規表現は、テキストを照合するためのパターンです。\dは数字、\wは単語構成文字に一致し、+は1回以上、?は省略可能を意味し、^と$は一致を先頭と末尾に固定します。以下に、構文の全体と、一致すべき文字列と一致すべきでない文字列でライブ検証したテスト済みパターン30個を載せています。
ほとんどのパターンをカバーする6つの記号
パターンをコピーし、その横の入力欄で自分のテキストを試してみましょう。このページのすべてのパターンには、一致しなければならない例と一致してはならない例が付いており、ページがそれをブラウザー内で実行するので、一つひとつの結果を確認できます。
実用的なのは^[^\s@]+@[^\s@.]+(\.[^\s@.]+)+$です。何らかのテキスト、@、そしてドットを1つ以上含むドメインという形です。珍しいけれど有効なアドレスを拒否せずに、入力ミスを見つけられます。アドレスが本当に存在するかはどの正規表現にも判断できないので、確認メールを送りましょう。
空白、ハイフン、かっこを取り除いてから、E.164形式を確認します:^\+[1-9]\d{6,14}$。区切り文字付きで入力された米国やカナダの番号には、このページの北米用パターンを使います。国ごとに完全に確認するなら、電話番号ライブラリのほうが確実です。
角かっこの外では、^は一致をテキストの先頭(mフラグ付きなら各行の先頭)に固定します。[^0-9]のように角かっこ内の最初の文字として使うと、これらの文字以外という意味になります。
方言によって細部が異なるからです。Pythonは名前付きグループを(?P<name>...)と書き、組み込みのreモジュールは\p{L}に対応しておらず、後読みは固定長しか使えません。よくある違いは、このページの言語別の表で確認してください。
*や+のような最長一致の量指定子は、できるだけ多くのテキストを取り込み、その後で後退します。?を付けると最短一致になり、できるだけ少なく取り込みます。<b>x</b><b>y</b>に対して、<.+>は全体に一致し、<.+?>は<b>だけに一致します。
正規表現の構文リファレンス(JavaScriptの方言)
JavaScriptのフラグ
同じ考え方をJavaScript、Python、PHPで
何らかの文字列、@、そしてドットを1つ以上含むドメイン。空白は不可。
メールアドレスを完全に検証できる正規表現はありません。実在するかを知るには確認メールを送りましょう。
httpまたはhttps、ドットを1つ以上含むホスト、任意のポート、その後に空白を含まない任意のパス、クエリ、フラグメント。
JavaScriptでは、tryブロック内でnew URL(value)を使うほうが厳密に確認できます。
英字、数字、途中のハイフンからなるラベルをドットで区切り、英字のみのトップレベルドメインで終わるもの。
小文字の英字と数字のまとまりを、1つずつのハイフンでつないだもの。
プラス記号、0で始まらない国番号、合計7〜15桁の数字。空白は不可。
先に空白、ハイフン、かっこを取り除きましょう。国ごとにきちんと検証するには、電話番号ライブラリを使います。
任意の+1、0や1で始まらない3桁の市外局番と局番、その後に4桁の数字。一般的な区切り文字に対応。
5桁の数字。任意でハイフンと4桁の数字が続く(ZIP+4)。
1〜2文字の英字、数字1桁、任意の英字か数字、任意の空白、その後に数字1桁と英字2文字。
形だけを確認します。実在しない番号も一部受け入れてしまいます。
英字、数字、英字、任意の空白、数字、英字、数字。D、F、I、O、Q、Uは使われず、WとZは先頭に来ません。
#の後に3、4、6、8桁の16進数(4桁と8桁の形式は透明度を含む)。
12文字以上で、小文字、大文字、数字、記号をそれぞれ含むことを先読みで確認します。
文字種を混ぜることより長さのほうが重要です。現在は最低文字数だけを求め、漏えいしたパスワードの一覧と照合するチームが多くなっています。
英字と数字で3〜20文字。ドットとアンダースコアは文字の間でのみ使え、連続は不可。
0から255の数字4つをドットで区切ったもの。先頭のゼロは不可。
4桁の年、01〜12の月、01〜31の日。
2026-02-31も受け入れます。存在しない日を除外するには、その後で日付を解析しましょう。
00〜23の時、コロン、00〜59の分。
1〜12の時、分、その後にamまたはpm(ドットと空白は任意)。
任意のマイナス記号、その後に0か先頭にゼロのない数。
整数に、任意でドットと1桁以上の数字が続くもの。
任意のドル記号、正しいカンマ区切り(または区切りなし)の数字、任意の2桁のセント。
0から100の数(小数は任意)の後に%。
13〜19桁の数字。任意で空白かハイフンで区切られる。
形だけの確認です。カードの検証には、Luhnチェックと決済サービスを使いましょう。
先頭にゼロのないMAJOR.MINOR.PATCHに、任意の-prereleaseと+buildの部分が付くもの。
8-4-4-4-12桁の16進数で、1から8のバージョン桁と標準のバリアントを持つもの。
開始タグ、ほかのタグを含まないテキスト、対応する終了タグ(後方参照\1がタグ名を繰り返す)。
HTML全体を正規表現で解析してはいけません。DOMParserかHTMLパーサーを使いましょう。
空白、タブ、改行以外に何もないもの。空のフォーム入力を拒否するのに便利です。
#の後に、英字(あらゆる文字体系)、数字、アンダースコアが続くもの。\p{L}にはuフラグが必要です。
一般的なwatch、embed、shorts、短縮リンクの形式。グループ1が11文字の動画IDを取得します。
パスに使えない文字を含まず、一般的な画像の拡張子で終わるファイル名。
@と、1〜15文字の英字、数字、アンダースコア。X(旧Twitter)が採用しているルールです。
'the the'のように2回続けて入力された単語を見つけます。アンカーがないので、テキストの途中も検索します。
(空)
一致しない
コピー
一致すべき
一致すべきでない
自分の値で試す
一致
不一致
クイックテスター
パターン
フラグ
テキスト
一致はありません。
位置 {n}:
グループ:
構文
フラグ
テスト済みパターン{n}個
絞り込み
メール、日付、電話…
その条件に一致するパターンはありません。
JavaScript、Python、PHP
2026-10にリリース、2026-11にパッチ、2027-02に予定。
無料で始める · クレジットカード不要