これは繰り返しの質問です。私はそれが他の場所に記載されているのを見ませんでした。6つの連続した数字の文字列でDOBを見つけるための正規表現
私はmmddyyの形式で生年月日を認識する正規表現文字列を探しています。私が知る限り、正規表現は、個々の数字セットがどこにあるのかを知りません。
正規表現でこれを見つける簡単な方法はありますか(デリミタ/スペーシングは不要です)? (\d\d)(\d\d)(\d\d)
あなたも、正規表現のO/Wこの問題を解決することができます:
これは繰り返しの質問です。私はそれが他の場所に記載されているのを見ませんでした。6つの連続した数字の文字列でDOBを見つけるための正規表現
私はmmddyyの形式で生年月日を認識する正規表現文字列を探しています。私が知る限り、正規表現は、個々の数字セットがどこにあるのかを知りません。
正規表現でこれを見つける簡単な方法はありますか(デリミタ/スペーシングは不要です)? (\d\d)(\d\d)(\d\d)
あなたも、正規表現のO/Wこの問題を解決することができます:
どのようなものについて:
^([0-9]{2})([0-9]{2})([0-9]{2})$
最初のグループは、次のグループが一日のための2つになり、そして最後のグループは、今年になり、月は2桁になります。
あなたが賢くなりたいと思った場合、あなたは最初のグループは、0または1で始まり、その日はおそらく、0、1、2または3で始まる必要がありますことを確認できます。
^([0-1][0-9])([0-3][\d])([\d]{2})$
また、したくない場合は、RegExを使用する必要はありません。最近のほとんどの現代のフレームワーク(Python、.NET、Javaなど)には、指定されたフォーマットで日付を解析するライブラリとメソッドがあります。これには、型チェックとネイティブDateオブジェクトを構築する機能が追加されます。
UPDATE:
あなたは31の上に行かない日を確認するためにORを使用することができます。
^([0-1][0-9])([0-2][\d]|[3][0-1])([\d]{2})$
ありがとうマイク、素晴らしいアイデア。クイック質問 - それはまだ "133999"のようなものをキャッチしないだろうか? 「12」以下の日数と「31日」以下の日数をキャッチする方法はありますか? –
さて、私は私の答えを更新しました。私はあなたに月の事を考えさせる(同じアイデア)。 –
Coolio。 [([0] [1-9] | [1] [0-2])([0] [1-9] | [1-2] [\ d] | [0-1] )([\ d] {2}) 'が動作します。どうもありがとうございました。 –
日と月は常に(ゼロ前の)2桁を使用している場合は、その問題はもちろんありませんこと。
もしそうでなければ、彼らは銀色の弾丸ではありません。
だから、それは常に6桁の数字になりますか? –