C# 正则表达式匹配日期

C# 正则表达式匹配日期,c#,regex,C#,Regex,需要匹配用户提交字符串中的日期 它应该适用于这些不同的格式 jan 1 2000 january 1 2000 jan. 1 2000 1/1/2000 2000 january 如何编写此正则表达式?我不会使用RegExp: DateTime attempt; if (DateTime.TryParse(inputDate, out attempt) { // You're good to go. } 但这将与1月或2000年的日期相冲突。我不会使用RegExp: DateTime a

需要匹配用户提交字符串中的日期 它应该适用于这些不同的格式

jan 1 2000
january 1 2000
jan. 1 2000
1/1/2000
2000
january

如何编写此正则表达式?

我不会使用RegExp:

DateTime attempt;
if (DateTime.TryParse(inputDate, out attempt)
{
  // You're good to go.
}

但这将与1月或2000年的日期相冲突。

我不会使用RegExp:

DateTime attempt;
if (DateTime.TryParse(inputDate, out attempt)
{
  // You're good to go.
}

但这将与2000年1月或2000年的日期相冲突。

你先看了吗?除了一些特殊情况外,它可能会使您不必使用正则表达式。

您先看一下吗?除了一些特殊情况外,它可能会使您免于使用正则表达式。

我觉得用正则表达式验证这一点太复杂了

更好地利用


另外,由于31/30/29/28天/月,以及特殊情况,使用正则表达式验证日期非常困难。

I使用正则表达式验证日期太复杂了

更好地利用


此外,由于31/30/29/28天/月和特殊情况,使用regex验证日期也非常困难。

即使这些是唯一允许的格式,使用regex也很难,因为它涉及检查月份名称是否有效,检查日期是否对给定月份有效,例如4月31日等,闰年等


按照其他人的建议使用DateTime类。

即使这些是唯一允许的格式,使用regex也很难做到,因为它涉及检查月份名称是否有效,检查日期是否对给定月份4月31日等有效,闰年等


按照其他人的建议使用DateTime类。

这是用于win还是web应用程序?如果windows只是使用DateTime.TryParse,但如果是web,则使用javascript


有关javascript,请参见这是用于win还是web应用程序?如果windows只是使用DateTime.TryParse,但如果是web,则使用javascript


有关javascript,请参见

是否还有其他允许的格式?最后两种格式不是日期。一是一年,二是一个月。对于这些,您必须编写额外的逻辑来确定它们的解析结果。如何编写与1000之间的4位数字匹配的正则表达式-9999@newU表示4位数字的正则表达式是/[1-9][0-9]{3}/Use/19\d{2}/如果要将范围限制为1900-1999,是否还有其他允许的格式?最后两个不是日期。一是一年,二是一个月。对于这些,您必须编写额外的逻辑来确定它们的解析结果。如何编写与1000之间的4位数字匹配的正则表达式-9999@newU表示4位数字的正则表达式是/[1-9][0-9]{3}/Use/19\d{2}/如果你想将范围限制在1900-1999年,我该如何编写一个与1000-9999 MBO之间的4位数字匹配的正则表达式?请在你问题的评论中告诉我-但是如果你接受1000年,为什么不选择850年?或者公元前55年?我该如何编写一个正则表达式来匹配一个4位数的数字,这个数字在1000-9999MBO之间,在对你的问题的评论中比我更准确-但是如果你接受1000年,为什么不接受850年呢?还是公元前55年?