JA
マイツール

日付の正規表現ジェネレーター&テスター(YYYY-MM-DD・MM/DD/YYYY・ISO 8601)

YYYY-MM-DD・MM/DD/YYYY・DD.MM.YYYY・ISO 8601の日付・時刻の正規表現を、月の日数とうるう年まで考慮して作成し、JS・PHP・Python・Java・.NETのコードも出力します。

正規表現
JavaScript
コード
一致数
3
不一致
5

Python、.NET、一部のJavaモードでは\dがアラビア・インド数字などの他の文字の数字にも一致するため、\dの代わりに[0-9]を使っています。

(?=…)の先読みが最初に値全体を検査し、その後で名前付きグループが各部分を取り出します。先読みは5つの言語すべてで動作します。

うるう年はグレゴリオ暦の規則に従います。2000年と2024年には2月29日があり、1900年と2023年にはありません。

テスト結果
行値結果構成要素または理由
12024-02-29一致year=2024, month=02, day=29
22023-02-29不一致2023年はうるう年ではありません
32026-04-31不一致04月は30日までしかありません
42026-12-01一致year=2026, month=12, day=01
51900-02-29不一致1900年はうるう年ではありません
62000-02-29一致year=2000, month=02, day=29
72026-13-01不一致13月は存在しません
826-01-01不一致年は4桁にしてください
パターンが確認する内容
部分ルール
year4桁。2月29日のうるう年:4で割り切れる年。ただし100の倍数の年は400で割り切れる場合のみ
month01–12
day月に応じて最大31、30、または28/29
マイツール →
広告

日付の正規表現では、まずどこまで厳密にするかを決める必要があります。\d{4}-\d{2}-\d{2}は2026-19-45も通してしまいますが、月の日数とうるう年を考慮したパターンなら、2023-02-29を拒否し、2024-02-29を受け入れます。このジェネレーターは、ISO 8601・米国式・欧州式・韓国式・区切りなしの日付、RFC 3339の日時、時刻など、使っている形式に合ったパターンを、選んだ厳密さで作成します。名前付きグループとJavaScript・PHP・Python・Java・C#のコードを用意し、入力した値でそのままテストします。

使い方

  1. 日付または時刻の形式を選びます。
  2. パターンの厳密さを選びます。「実在する日付」ではうるう年も考慮されます。
  3. 言語を選び、値全体を検証するか、テキストから日付を探すかを決めます。
  4. テスト値を貼り付けて、どの値が一致し、他がなぜ一致しないのかを確認します。

計算式

うるう年 = 4で割り切れる年。ただし100の倍数の年は400で割り切れる場合のみ → (?:\d\d(?:0[48]|[2468][048]|[13579][26])|(?:0[048]|[2468][048]|[13579][26])00)

実在する日付のパターンは、3つの月のグループ(31日の月:01・03・05・07・08・10・12、30日の月:04・06・09・11、28日までの2月)と、うるう年の2月29日用の別の分岐で作られます。名前付きグループを使う場合は、グループが年・月・日に分ける前に、先読み(?=…)が値全体を検査します。どの言語でもASCIIの数字だけが一致するよう、\dではなく[0-9]を使います。検証用のコードは文字列全体のマッチ(^…$でtest、fullmatch、matches、\z)を使うため、末尾の改行は受け付けません。

計算例

YYYY-MM-DDと「実在する日付」では、サンプルのリストは3件が一致します。2024-02-29(2024年はうるう年)、2026-12-01、2000-02-29(2000は400で割り切れる)です。2023-02-29はうるう年でないため、2026-04-31は4月が30日までのため、1900-02-29は100の倍数で400では割り切れないため、2026-13-01は13月がないため、26-01-01は年が4桁必要なために一致しません。

よくある質問

日付を正規表現で検証してよいのでしょうか?

正規表現は、形式の確認や、フォームやログでの簡易チェックに向いています。重要な場面では、タイムゾーンや暦の規則を知っている、使用言語の日付ライブラリでも日付を解析してください。

\dを使わないのはなぜですか?

Python 3、.NET、Unicodeフラグ付きのJavaでは、\dが٣や३のような他の文字体系の数字にも一致します。[0-9]は0〜9にしか一致しません。

文章中の日付にも使えますか?

はい。「テキストから日付を探す」を選んでください。その場合、パターンはより長い数字の内部では一致しないため、12026-01-01から2026-01-01が見つかることはありません。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). 日付の正規表現ジェネレーター&テスター(YYYY-MM-DD・MM/DD/YYYY・ISO 8601). https://kakao.mobile/ja/tools/date-regex-tool/

MLA

“日付の正規表現ジェネレーター&テスター(YYYY-MM-DD・MM/DD/YYYY・ISO 8601).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/date-regex-tool/.

広告