NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
日付 regex Python バリデーター

日付 regex Python バリデーター

日付 regex Python バリデーターを使うと、YYYY-MM-DD、MM/DD/YYYY、DD-MM-YYYY などの一般的な日付フォーマットに入力が一致するかを確認できます。データ収集システム、ウェブアプリ、フォーム検証ロジックに特に役立ちます。数値 regex Python バリデーターと組み合わせてタイムスタンプと数量を検証したり、メール regex Python バリデーターでユーザープロフィールを完全に検証したりできます。

日付 regex Python バリデーター - ドキュメント

日付 regex とは何ですか?

日付 regexは、有効な日付を表す文字列値に一致するものです。一般的なフォーマット:

  • YYYY-MM-DD → 2024-12-31

  • MM/DD/YYYY → 12/31/2024

  • DD-MM-YYYY → 31-12-2024

regex は構造が正しいかを確認しますが、論理的な有効性(例:2 月 31 日は構造的には「有効」)は確認できません。

regex はデータ検証に不可欠なツールです。入力が YYYY-MM-DD、MM/DD/YYYY、DD-MM-YYYY などの特定の日付フォーマットに一致するかを素早く確認できます。ただし、「2023-02-31」や「13/13/2022」のような構造的には正しく見えても実際には存在しない日付を受け入れる可能性があります。より深い検証には regex と追加のロジックや日付処理ライブラリを組み合わせてください。

日付の区切り文字の処理

区切り文字のバリエーションに対応するには文字セットを使用します。スラッシュ(/)、ハイフン(-)、ドット(.)のいずれかを許可するには [\/\-.] を使います:

  • MM/DD/YYYY、MM-DD-YYYY、MM.DD.YYYY に一致するパターン:

    ^(0[1-9]|1[0-2])[\/\-.](0[1-9]|[12][0-9]|3[01])[\/\-.]\d{4}$

日付 regex パターンの構築手順

1. 月の照合

(0[1-9]1[0-2]) で 01 から 12 の有効な月のみを照合します。

2. 日の照合

(0[1-9][12][0-9]3[01]) で 01 から 31 をカバーします。

3. 区切り文字の追加

[/-]/ または - を許可します。

4. 年の照合

\d{4} で 4 桁の年を照合します。

5. 組み合わせ

^(0[1-9]1[0-2])[/-](0[1-9][12][0-9]3[01])[/-]\d{4}$

一般的な日付フォーマットの regex パターン

  1. ISO フォーマット(YYYY-MM-DD)

    ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
  2. 米国フォーマット(MM/DD/YYYY)

    ^(0[1-9]|1[0-2])/([0][1-9]|[12][0-9]|3[01])/\d{4}$
  3. ヨーロッパフォーマット(DD-MM-YYYY)

    ^([0][1-9]|[12][0-9]|3[01])-(0[1-9]|1[0-2])-\d{4}$

Python コード例

import re

def is_valid_date(date_str): pattern = re.compile( r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$' ) return bool(pattern.fullmatch(date_str))

テストケース

dates = ["2025-06-12", "2025-02-29", "1999-13-01", "2025-06-31"] for date in dates: print(f"{date} -> {is_valid_date(date)}")

ユースケース

プロのヒント

  • 実際の日付検証には regex と合わせて datetime.strptime を使用してください。

  • regex は「2025-02-30」のような論理エラーを検出できません。

  • パフォーマンスの最適化には非キャプチャグループを使用してください。

  • 不要な文字クラス範囲を避けて、パターンをシンプルかつ読みやすく保ちましょう。

  • うるう年、月末、空白など、エッジケースを必ずテストしてください。

  • 数値 regex Python バリデーターと組み合わせて、レポートの数値フィールドも検証できます。

よくある落とし穴

  • 先頭のゼロの欠如:「2024-2-9」が通過しないよう、パターンが厳格か確認してください。

  • 不可能な日付の許可:regex は「2024-02-30」や「1999-13-01」を止められません。構造のみを確認します。

  • 緩い範囲:月に「00」や日に「32」が通過しないよう範囲を確認してください。

regex は正しいフォーマットかどうかの確認に使い、Python の datetime.strptime() と組み合わせて実際の無効な日付をキャッチするのが最善です。

Frequently Asked Questions

この regex はうるう年を検出できますか?

いいえ、regex は構造のみを検証できます。うるう年の確認には Python の datetime モジュールを使用してください。

月として 13 を入力した場合はどうなりますか?

regex がそれを検出して false を返します。01 から 12 のみを許可しているためです。

Django フォームバリデーターで使用できますか?

はい。カスタム検証関数に regex を組み込むか、RegexValidator を使用してください。

複数のフォーマットを同時にサポートするには?

複数の regex を使用するか、dateutil のような柔軟なパーサーを使用できます。

オプションまたは空の日付フィールドを許可したい場合は?

regex を適用する前に空入力を許可する条件を別途設けてください。

API を今すぐテストしましょう!

平易な言葉で記述するだけで、Qodex が安全ですぐに実行できるテストに変換します。