5
A
答えて
15
正規表現は、この作業には適していません。有効な日付「20080229」に一致するが、無効な日付「20100229」には一致しない正規表現を書くのは難しいです。
DateTime.TryParseExact
の代わりに、フォーマット文字列"yyyyMMdd"
を使用する必要があります。
string s = "20100229";
DateTime result;
if (!DateTime.TryParseExact(
s,
"yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal,
out result))
{
Console.WriteLine("Invalid date entered.");
};
2
日付を検証するためにDateTime.TryParseExactの使用を検討してください:ここでは一例です。 このメソッドを使用すると、DateTime値を一度に検証して読み取ることができます。例えば
:
DateTime dateValue;
if (DateTime.TryParseExact(dateString, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))
{
//Parsed Successfully
}
7
[OK]を、これは私が今までに作られた中で最も美しい正規表現です。これは1582年以降のすべての飛躍の年であり、飛躍の導入です。それはまた、4世紀ごとに非跳躍を処理します。たとえば、1600は閏ですが、1700は4で割り切れますが、それはありません。私は1582年と9999
var yyyymmdd = new RegExp("^(?:(?:(?:(?:(?:[13579][26]|[2468][048])00)|(?:[0-9]{2}(?:(?:[13579][26])|(?:[2468][048]|0[48]))))(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:0[1-9]|1[0-9]|2[0-9]))))|(?:[0-9]{4}(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:[01][0-9]|2[0-8])))))$");
ダッシュ
var yyyyDashMmDashDd = new RegExp("^(?:(?:(?:(?:(?:[13579][26]|[2468][048])00)|(?:[0-9]{2}(?:(?:[13579][26])|(?:[2468][048]|0[48]))))-(?:(?:(?:09|04|06|11)-(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)-(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02-(?:0[1-9]|1[0-9]|2[0-9]))))|(?:[0-9]{4}-(?:(?:(?:09|04|06|11)-(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)-(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02-(?:[01][0-9]|2[0-8])))))$");
私はこれがある限り、彼らは正規表現をサポートするように、ほぼすべての言語のために働くことを愛するを使用して別のバージョン間のすべての日にこれをテストしました。間違いなく、言語固有の日付パーサを使用する方が賢明ですが、これは正規表現の力と優雅さを示していると思います。
これは、見たい場合は、Regexperのスラッシュ付きのパターンのimageです。
関連する問題
- 1. 正規表現日付の検証エラー
- 2. 正規表現でYYYY-MM-DD形式のPHPで日付を検証する
- 3. 正規表現を使用して日付形式を検証する方法
- 4. Perl /正規表現の日付形式を変換する
- 5. SimpleDateFormatの日付形式を正規表現に変換する
- 6. この日付形式の正規表現ですか?
- 7. 日付形式を超える正規表現xx-xx-xxxx
- 8. R日付の形式はyyyymmdd
- 9. Pythonのさまざまな日付形式の正規表現
- 10. jqueryの正規表現の日付形式
- 11. 正規表現による日付検証
- 12. 日付形式を検出するC#
- 13. javascriptの日付検証の正規表現
- 14. C++で日付形式を検証する
- 15. 日付の出現を正規表現で別の形式に変更
- 16. 日付正規表現に日付フォーマットを追加します
- 17. PHPの正規表現で日付の形式を変更する
- 18. 正規表現でこの形式の日付を確認する
- 19. 複数の日付形式を一致させる正規表現ですか?
- 20. 日付形式クライアントの検証 - MVC
- 21. PDF形式のJavascriptの日付検証
- 22. Pythonの正規表現を使用してyyyymmddsssssの日付形式を検証する方法は?
- 23. .Net/Cで日付をHTTP形式の日付に変換するには
- 24. 複数の日付を同じパターンで正規表現で検証する
- 25. YYYYMMDD列日付
- 26. `MMMという形式の日付の正規表現です。 DD、YYYY`
- 27. Pythonの正規表現の日付ギ
- 28. Oracleの正規表現の日付
- 29. 正規表現は、最新の日付
- 30. ビッグクエリの正規表現は、日付ETL