C# dd/mm的正则表达式

C# dd/mm的正则表达式,c#,.net,regex,C#,.net,Regex,请使用正则表达式帮助我验证以下格式 dd/mm 这用于验证生日字段,不需要年份 谢谢 或: \d表示一个数字,{2}指定它必须重复两次 要检查这是否是真实日期,请使用: 然而,这将无法正确处理闰年。也许最好的解决办法是询问出生年份 ^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])$ 但这将允许例如30/02 bool foundMatch = false; foundMatch = Regex.IsMatch(SubjectString, @"

请使用正则表达式帮助我验证以下格式

dd/mm
这用于验证生日字段,不需要年份

谢谢

或:

\d
表示一个数字,
{2}
指定它必须重复两次

要检查这是否是真实日期,请使用:

然而,这将无法正确处理闰年。也许最好的解决办法是询问出生年份

^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])$
但这将允许例如30/02

bool foundMatch = false;
foundMatch = Regex.IsMatch(SubjectString, 
    @"^(?:
     (?:[12][0-9]|0?[1-9])/(?:0?2|Feb(?:ruary)?)
     |
     (?:30|[12][0-9]|0?[1-9])/
      (?:
       (?:0?[469]|11)
       |
       Apr(?:il)?|June?|Sep(?:tember)?|Nov(?:ember)?
      )
     |
     (?:3[01]|[12][0-9]|0?[1-9])/
      (?:
       (?:0?[13578]|1[02])
       |
       Jan(?:uary)?|Mar(?:ch)?|May|July?|Aug(?:ust)?|Oct(?:ober)?|Dec(?:ember)?
      )
     )$",  
    RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
将匹配有效天数/月份。它将永远匹配2月29日,因为它不知道年份


顺便说一句,我使用了这个正则表达式(手动操作太繁琐了,这是另一个迹象,表明这是一个日期/时间解析器的工作)。

您使用的是什么编程语言/regex引擎?请更新您的标记/问题标题以反映这一点。在此正则表达式中,00/00是有效的date@Itay,她问的是验证格式,而不是这是一个真实的日期。为了确认这是不是一次真正的约会,最好直接使用。谢谢Matthew。。。她不是她;-)我怎样才能验证日期呢。例如30/02应为false。如果没有年份,则无法验证日期,因为无法判断2月29日是否有效。谢谢Tim。将格式从mm/dd更改为mm/month(即02/febraury等)有多容易?现在支持这两种变体。
DateTime date;
bool valid;
valid = DateTime.TryParseExact("00/00", "dd/MM", null, DateTimeStyles.None, out date); // false
valid = DateTime.TryParseExact("30/02", "dd/MM", null, DateTimeStyles.None, out date); // false
valid = DateTime.TryParseExact("27/02", "dd/MM", null, DateTimeStyles.None, out date); // true
^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])$
bool foundMatch = false;
foundMatch = Regex.IsMatch(SubjectString, 
    @"^(?:
     (?:[12][0-9]|0?[1-9])/(?:0?2|Feb(?:ruary)?)
     |
     (?:30|[12][0-9]|0?[1-9])/
      (?:
       (?:0?[469]|11)
       |
       Apr(?:il)?|June?|Sep(?:tember)?|Nov(?:ember)?
      )
     |
     (?:3[01]|[12][0-9]|0?[1-9])/
      (?:
       (?:0?[13578]|1[02])
       |
       Jan(?:uary)?|Mar(?:ch)?|May|July?|Aug(?:ust)?|Oct(?:ober)?|Dec(?:ember)?
      )
     )$",  
    RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);