正则表达式的日期模式?

Ala*_*yne 0 c# regex

尝试在C#中编写一个接受以下任何/所有内容的正则表达式:

  1. 1968年2月1日
  2. 1968年2月1日
  3. 1968年2月1日

(这个问题与其他类似的问题有些不同,因为这是一个单词,采用mm/dd/yyyy格式.只需要模式而不需要验证它的可能性.即99/99/9999是好的)

我无处可去.据我所知(这只承认02/01/1968):

Regex regex = new Regex(@"^\d{2}/\d{2}/\d{4}$",RegexOptions.IgnorePatternWhitespace);
Match x = regex.Match(birthdate);
if (x.Success == false) return;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.(对正则表达式的解释将是最受欢迎的).

Ese*_*ser 8

如评论中所述,使用日期时间解析器.获得正确的正则表达式(仅返回有效的日期时间)可能非常复杂且难以维护.

var formats = new[] { "d/M/yyyy", "dd/M/yyyy", "d/MM/yyyy", "dd/MM/yyyy" };
DateTime dt;
if (DateTime.TryParseExact(input, formats, null, DateTimeStyles.None, out dt))
{
    //parsed correctly
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句:你的问题不清楚你是否想要,dd/mm或者mm/dd我选择了第一个

  • 这更好,但我正在尝试学习正则表达式模式匹配.谢谢.:) (2认同)