正規表現パターン集(日本向け)
郵便番号・電話番号・メールアドレス・全角カタカナ・日付・IPアドレスなど、入力チェックでよく使う正規表現をまとめました。各パターンには一致する例と一致しない例がついていて、ボタンでコピーできます。コピーしたパターンは 正規表現テスター に貼り付けて、手元のデータで動作を確かめてください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
名前・説明・パターン本体から探せます。空白区切りで複数の語を指定すると、すべてに一致するものだけが表示されます。
郵便番号(ハイフン任意)
日本向け7桁の郵便番号。「100-0001」でも「1000001」でも一致します。実在する番号かどうかは確認しません。
^\d{3}-?\d{4}$フラグ: なし
✓ 一致する例
- 100-0001
- 1000001
✗ 一致しない例
- 100-001
- 10-00001
- 100--0001
郵便番号(ハイフン必須)
日本向け「123-4567」の形式だけを許可する郵便番号です。
^\d{3}-\d{4}$フラグ: なし
✓ 一致する例
- 100-0001
- 060-0000
✗ 一致しない例
- 1000001
- 100-00011
携帯電話番号
日本向け070・080・090 で始まる11桁。ハイフンは付けても付けなくても一致します。050 などの IP 電話は対象外です。
^0[789]0-?\d{4}-?\d{4}$フラグ: なし
✓ 一致する例
- 090-1234-5678
- 08012345678
✗ 一致しない例
- 060-1234-5678
- 090-123-45678
- 0901234567
固定電話番号(ハイフンあり)
日本向け市外局番・市内局番・加入者番号をハイフンで区切った形式。「03-1234-5678」「0123-45-6789」などに一致し、携帯電話の「090-1234-5678」にも一致します。
^0\d{1,4}-\d{1,4}-\d{4}$フラグ: なし
✓ 一致する例
- 03-1234-5678
- 045-123-4567
- 0123-45-6789
✗ 一致しない例
- 3-1234-5678
- 03-1234-567
- 0312345678
電話番号(数字のみ)
日本向け0 で始まる10桁または11桁の数字だけの電話番号です。ハイフン入りは一致しません。
^0\d{9,10}$フラグ: なし
✓ 一致する例
- 0312345678
- 09012345678
✗ 一致しない例
- 312345678
- 031234567
- 03-1234-5678
マイナンバー(12桁)
日本向け12桁の数字かどうかだけを調べます。チェックデジットの検証はしません。
^\d{12}$フラグ: なし
✓ 一致する例
- 123456789012
✗ 一致しない例
- 12345678901
- 1234-5678-9012
- 1234567890123
全角カタカナ
日本向け全角カタカナと長音「ー」だけで構成された文字列。フリガナ欄の入力チェックに使えます。中黒「・」や空白は含まれません。
^[ァ-ヶー]+$フラグ: なし
✓ 一致する例
- ヤマダ
- ラーメン
✗ 一致しない例
- やまだ
- ヤマダ1
- ヤマダ
- (空文字)
ひらがな
日本向けひらがなと長音「ー」だけで構成された文字列。よみがな欄の入力チェックに使えます。
^[ぁ-んー]+$フラグ: なし
✓ 一致する例
- やまだ
- らーめん
✗ 一致しない例
- ヤマダ
- 山田
- やまだ1
漢字
日本向け漢字と「々」だけで構成された文字列です。Unicode のスクリプトプロパティを使うため u フラグが必要です。
^[\p{Script=Han}々]+$フラグ: u
✓ 一致する例
- 山田
- 佐々木
✗ 一致しない例
- やまだ
- 山田1
- Yamada
半角カタカナ
文字種・空白半角カタカナだけの文字列です。濁点・半濁点も含みます。半角カナを禁止したい場合の判定に使えます。
^[ヲ-゚]+$フラグ: なし
✓ 一致する例
- ヤマダ
- アイウ
✗ 一致しない例
- ヤマダ
- ヤマダ1
全角数字
文字種・空白全角の数字「0〜9」だけで構成された文字列です。
^[0-9]+$フラグ: なし
✓ 一致する例
- 123
- 0
✗ 一致しない例
- 123
- 12
- 12345a
半角英数字
文字種・空白半角の英字と数字だけで構成された文字列です。
^[A-Za-z0-9]+$フラグ: なし
✓ 一致する例
- abc123
- ABC
✗ 一致しない例
- abc 123
- abc_123
- abc
半角英数記号以外を含む
文字種・空白ASCII 以外の文字(日本語、アクセント付き文字、絵文字の一部など)を1文字でも含むと一致します。「全体が ASCII か」を調べる逆の判定です。
[^\x00-\x7F]フラグ: なし
✓ 一致する例
- abcあ
- é
✗ 一致しない例
- abc 123
- Hello, World!
先頭・末尾の空白
文字種・空白文字列の先頭と末尾にある空白や改行です。g フラグ付きで置換に使い、置換後を空にすると trim と同じ結果になります。
^\s+|\s+$フラグ: g
✓ 一致する例
- hello
- hello
- hello
✗ 一致しない例
- hello
- hello world
空行
文字種・空白何も書かれていない行、または空白だけの行。m フラグを付けると行ごとに判定されます。
^\s*$フラグ: m
✓ 一致する例
- (空文字)
- a b
✗ 一致しない例
- abc
- a b
メールアドレス(実用的な簡易版)
Web・ネットワーク一般的なメールアドレスの形を判定します。RFC を完全には満たさず、日本語ドメインや引用符つきのローカル部は対象外です。最終的な確認は確認メールで行ってください。
^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}$フラグ: なし
✓ 一致する例
- a@example.com
- user.name+tag@sub.example.co.jp
✗ 一致しない例
- a@b
- @example.com
- a@@example.com
- a b@example.com
URL(http / https)
Web・ネットワークhttp:// または https:// で始まり、空白を含まない URL。大文字小文字は区別しません。
^https?://[^\s/$.?#][^\s]*$フラグ: i
✓ 一致する例
- https://example.com/path?x=1
- http://localhost:3000
- HTTP://A.COM
✗ 一致しない例
- ftp://example.com
- example.com
- https://exa mple.com
- https://
ドメイン名
Web・ネットワークラベルが英数字とハイフンで、末尾が英字2文字以上の FQDN。国際化ドメインは Punycode(xn--)に変換した形で判定します。
^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$フラグ: i
✓ 一致する例
- example.com
- sub.example.co.jp
- xn--abc.example
✗ 一致しない例
- -a.com
- example
- a..com
- a_b.com
IPv4 アドレス
Web・ネットワーク0〜255 の4つの数字をドットで区切った形式。「256」や先頭ゼロ付き「01」は一致しません。
^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$フラグ: なし
✓ 一致する例
- 192.168.0.1
- 255.255.255.255
- 0.0.0.0
✗ 一致しない例
- 256.1.1.1
- 192.168.0
- 01.2.3.4
- 1.2.3.4.5
MAC アドレス
Web・ネットワークコロンまたはハイフン区切りの16進数6組。区切り文字の混在は区別しません。
^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$フラグ: なし
✓ 一致する例
- 00:1A:2B:3C:4D:5E
- 00-1a-2b-3c-4d-5e
✗ 一致しない例
- 00:1A:2B:3C:4D
- 00:1A:2B:3C:4D:5G
- 001A.2B3C.4D5E
カラーコード(#RGB / #RRGGBB)
Web・ネットワーク「#」で始まる3桁または6桁の16進数。アルファ付きの4桁・8桁は一致しません。
^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$フラグ: なし
✓ 一致する例
- #fff
- #1A2b3C
✗ 一致しない例
- #ffff
- fff
- #ggg
X(Twitter)のユーザー名
Web・ネットワーク英数字とアンダースコアの1〜15文字。先頭の「@」は任意です。
^@?[A-Za-z0-9_]{1,15}$フラグ: なし
✓ 一致する例
- @nyanko_tools
- user123
✗ 一致しない例
- @too_long_name_12345
- a-b
- @
日付(YYYY-MM-DD)
日付・時刻月が01〜12、日が01〜31の範囲かを調べます。「2026-02-31」のような実在しない日付は一致するため、カレンダーとしての正しさは別途確認が必要です。
^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$フラグ: なし
✓ 一致する例
- 2026-10-19
- 2024-02-29
✗ 一致しない例
- 2026-13-01
- 2026-10-32
- 2026/10/19
- 2026-1-5
日付(YYYY/M/D)
日付・時刻スラッシュ区切りで、月と日のゼロ埋めは任意です。実在しない日付は一致します。
^\d{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|[12]\d|3[01])$フラグ: なし
✓ 一致する例
- 2026/1/5
- 2026/10/19
✗ 一致しない例
- 2026/00/10
- 2026/10/32
- 2026-10-19
時刻(24時間表記 HH:MM)
日付・時刻00:00〜23:59 の範囲。時は2桁のゼロ埋めが必要です。
^(?:[01]\d|2[0-3]):[0-5]\d$フラグ: なし
✓ 一致する例
- 00:00
- 09:30
- 23:59
✗ 一致しない例
- 24:00
- 12:60
- 9:30
整数
数値先頭にマイナス記号が付けられる整数です。「+」は含みません。
^-?\d+$フラグ: なし
✓ 一致する例
- 0
- -42
- 007
✗ 一致しない例
- 1.5
- +3
- --1
- (空文字)
小数
数値整数部が必須の小数。「.5」や「1.」は一致しません。カンマ小数点は対象外です。
^-?\d+(?:\.\d+)?$フラグ: なし
✓ 一致する例
- 3.14
- -0.5
- 10
✗ 一致しない例
- .5
- 1.
- 1,5
3桁区切りの数値
数値「1,234,567」のようにカンマで3桁ごとに区切られた正の整数です。
^\d{1,3}(?:,\d{3})*$フラグ: なし
✓ 一致する例
- 1,234,567
- 999
✗ 一致しない例
- 1234,567
- 12,34
- 1,2345
UUID
開発・IDハイフン区切りの8-4-4-4-12形式。バージョンの値までは検証しません。大文字小文字は区別しません。
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$フラグ: i
✓ 一致する例
- 123e4567-e89b-12d3-a456-426614174000
- 123E4567-E89B-12D3-A456-426614174000
✗ 一致しない例
- 123e4567e89b12d3a456426614174000
- 123e4567-e89b-12d3-a456
セマンティックバージョン
開発・IDsemver.org の仕様に沿った「1.2.3」「1.0.0-beta.1+build.5」の形式。先頭の「v」は含みません。
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$フラグ: なし
✓ 一致する例
- 1.2.3
- 1.0.0-beta.1+build.5
- 0.0.1
✗ 一致しない例
- 01.2.3
- 1.2
- v1.2.3
スラッグ(URL 用の識別子)
開発・ID小文字の英数字をハイフンでつないだ文字列。先頭・末尾のハイフンや連続ハイフンは許可しません。
^[a-z0-9]+(?:-[a-z0-9]+)*$フラグ: なし
✓ 一致する例
- my-post-1
- abc
✗ 一致しない例
- -a
- a--b
- A
- a-
ユーザー名(3〜16文字)
開発・ID英字で始まり、英数字とアンダースコアを使える3〜16文字。長さや文字種はサービスの仕様に合わせて調整してください。
^[A-Za-z][A-Za-z0-9_]{2,15}$フラグ: なし
✓ 一致する例
- user_01
- abc
✗ 一致しない例
- 1user
- ab
- a_very_long_user_name
パスワード(英大小文字+数字を含む8文字以上)
開発・ID先読み(?=…)で、小文字・大文字・数字をそれぞれ1文字以上含み、全体で8文字以上であることを調べます。
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$フラグ: なし
✓ 一致する例
- Passw0rdX
- aB3dEfGh!
✗ 一致しない例
- password1
- PASSWORD1
- Pass1
使い方
- 検索欄やカテゴリのボタンで、使いたいパターンを探します。
- 一致する例と一致しない例を見て、目的に合っているか確認します。
- 「コピー」でパターンをコピーして、コードや入力チェックに貼り付けます。
- 「regex-testerで試す」から正規表現テスターを開き、手元のデータで確かめます。
注意事項
- パターンは JavaScript(ECMAScript)の正規表現として書かれています。Python・Java・PHP などでは、先読みや Unicode プロパティ、フラグの書き方が異なる場合があります。
- コピーされるのはパターン本体だけです。フラグ(i・m・u など)が必要なものは、カードに表示されているフラグを別途指定してください。
- メールアドレス・日付・パスワードなどは、実用的な簡易版です。存在確認や実在する日付かどうかは、正規表現だけでは判定できません。
- 入力チェックはサーバー側でも必ず行ってください。ブラウザ側のチェックは利便性のためで、セキュリティ対策にはなりません。
用語解説
アンカー(^ と $)
文字列の先頭と末尾を表します。パターンの前後に付けることで、「文字列全体が一致する」ことを確かめられます。付けないと、一部だけが一致しても true になります。
先読み(lookahead)
「この位置の後ろに〜が続くか」を、文字を消費せずに調べる構文です。パスワードの強度チェックのように、複数の条件を同時に満たすかを判定するときに使います。
フラグ
正規表現の動作を変える指定です。i は大文字小文字を無視、m は行ごとに ^ と $ を判定、g は全件の検索、u は Unicode の扱いを有効にします。
よくある質問
先頭の ^ と末尾の $ は必要ですか?
入力欄の値が「全体として」その形式になっているか確認したいときは必要です。付けないと、文字列の一部が一致しただけで true になります。たとえば郵便番号のパターンから ^ と $ を外すと、「abc1000001xyz」も一致してしまいます。ページ内の文章から該当部分を抜き出したい場合は、^ と $ を外して使ってください。
Python・PHP・Java でもそのまま使えますか?
基本的な部分はほとんどの言語で動きますが、このページのパターンは JavaScript 向けです。\p{Script=Han} のような Unicode プロパティは、言語によって書き方が異なったり、非対応だったりします。また、フラグの指定方法(i や m の付け方)も言語ごとに違います。コピー後は、使う言語で実際に試してください。
メールアドレスのパターンで RFC に完全には従っていないのはなぜですか?
RFC に完全に従うと非常に長く複雑になり、実際のサービスで使われない形式まで通してしまうためです。このパターンは、実際によく使われる形を判定する実用的な簡易版です。ただし、形式が正しくてもそのアドレスが実在する保証はありません。確実に確認するには、確認メールを送ってリンクを踏んでもらう方法が必要です。
日付のパターンで「2026-02-31」が一致してしまいます。
正規表現は文字の並びを調べるだけで、カレンダー上の実在までは判定できません。パターンは月が01〜12、日が01〜31の範囲かを確認します。閏年や月ごとの日数まで確認したいときは、一致を確認したあとで Date オブジェクトや日付ライブラリで実在する日付かを検証してください。
全角カタカナのパターンで中黒「・」やスペースを許可するには?
文字クラスに足します。たとえば「マイケル・ジャクソン」を許可するなら [ァ-ヶー・]、全角スペースも許可するなら [ァ-ヶー・ ] のように指定します。パターンをコピーしたら、正規表現テスターに貼り付けて、許可したい文字が通ることを確認してください。
このページをシェア
