有効な日付にマッチする正規表現
2023-11-18 03:28:11
質問
私は日付を検証する正規表現を書こうとしています。 正規表現は、次のように一致する必要があります。
- M/D/YYYYY
- 西暦MM/DD/YYYY
- 1 桁の月は、先頭の 0 で始めることができます (例: 2008 年 12 月 3 日)。
- 1 桁の日数は、先頭の 0 から始めることができます (例: 2008 年 3 月 2 日)
- 2 月 30 日または 2 月 31 日を含めることはできません (例: 2/31/2008)
今のところ、私は
^(([1-9]|1[012])[-/.]([1-9]|[12][0-9]|3[01])[-/.](19|20)\d\d)|((1[012]|0[1-9])(3[01]|2\d|1\d|0[1-9])(19|20)\d\d)|((1[012]|0[1-9])[-/.](3[01]|2\d|1\d|0[1-9])[-/.](19|20)\d\d)$
これは、2008年2月30日と2008年2月31日を含んでいることを除けば、適切にマッチします。
どなたか良い案をお持ちではないでしょうか?
編集してください。 私が見つけたのは 答え をRegExLibで見つけました。
^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$
MM/DD/YYYY形式に従っている有効な月すべてにマッチします。
皆さん、ありがとうございました。
どのように解決するのですか?
これは正規表現の適切な使い方ではありません。次のような使い方をするとよいでしょう。
[0-9]{2}/[0-9]{2}/[0-9]{4}
といった具合に、上位の言語で範囲をチェックします。
関連
-
[解決済み] 最初のマッチで停止する正規表現
-
[解決済み] 正規表現で変数を使うには?
-
[解決済み] what meas this regex (.*1) [duplicate] (重複)
-
[解決済み] Bashスクリプトで文字列が正規表現にマッチするかどうかをチェックする
-
[解決済み] 単語を含まない行にマッチする正規表現
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み] 正規表現における非捕捉グループとは何ですか?
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] 有効な正規表現を検出するための正規表現はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】改行を含む任意の文字にマッチする正規表現
-
[解決済み] DartでRegExを使うには?
-
[解決済み] 文字列の最後の文字にマッチする正規表現[重複]について
-
[解決済み] 正規表現 AND 演算子
-
[解決済み] Bashスクリプトで文字列が正規表現にマッチするかどうかをチェックする
-
[解決済み] 正規表現における角括弧と括弧の違いは何ですか?
-
[解決済み] シェルスクリプトで正規表現を使用するにはどうすればよいですか?
-
[解決済み] 正規表現ネガティブルックアヘッド
-
[解決済み] Regex - 特定の文字が含まれていません。
-
[解決済み] 2つ以上の連続した文字を検索するためのRegEx