Regex 正则表达式日期格式

Regex 正则表达式日期格式,regex,Regex,我需要三个用于日期验证的正则表达式的帮助。要验证的日期格式应为: -MMyy -ddMMyy -ddmmyyy 进一步: 我希望正则表达式与上述格式中的确切位数相匹配。例如,一月应该是01,而不是1: 060117//ddMMyy格式:Ok 06117//ddMMyy格式:不正常 不允许使用连字符和斜杠,如:06-01-17或06/01/17 下面是我使用的regex:es。但我不能完全正确地理解它们 string regex_MMyy = @"^(1[0-2]|0[1-9]|\d)(\d{2}

我需要三个用于日期验证的正则表达式的帮助。要验证的日期格式应为:
-MMyy
-ddMMyy
-ddmmyyy

进一步:
我希望正则表达式与上述格式中的确切位数相匹配。例如,一月应该是01,而不是1:

060117//ddMMyy格式:Ok
06117//ddMMyy格式:不正常

不允许使用连字符和斜杠,如:06-01-17或06/01/17

下面是我使用的regex:es。但我不能完全正确地理解它们

string regex_MMyy = @"^(1[0-2]|0[1-9]|\d)(\d{2})$";    
string regex_ddMMyy = @"^(0[1-9]|[12]\d|3[01])(1[0-2]|0[1-9]|\d)(\d{2})$";
string regex_ddMMyyyy = @"^(0[1-9]|[12]\d|3[01])(1[0-2]|0[1-9]|\d)(\d{4})$";

var test_MMyy_1 = Regex.IsMatch("0617", regex_MMyy); // Pass
var test_MMyy_2 = Regex.IsMatch("617", regex_MMyy);  // Pass, do NOT want this to pass.
var test_ddMMyy_1 = Regex.IsMatch("060117", regex_ddMMyy); // Pass
var test_ddMMyy_2 = Regex.IsMatch("06117", regex_ddMMyy);  // Pass, do NOT want this to pass.
var test_ddMMyyyy_1 = Regex.IsMatch("06012017", regex_ddMMyyyy); // Pass
var test_ddMMyyyy_2 = Regex.IsMatch("0612017", regex_ddMMyyyy); // Pass, do NOT want this to pass.  
(如果有人能把每个月允许的天数和闰年考虑在内,那将是一笔巨大的奖金:))

谢谢,

问候您

正则表达式不能用于日期验证。与电子邮件地址或网站相同,它只能用于验证类似日期的格式。即使
2017-02-31
会有一个有效的格式-这是一个无效的日期,因为今年2月只有28天。您最好使用编程语言中可用的
日期解析
。如果您不想接受单个数字,请从模式中删除所有出现的
|\d
。谢谢,我会立即尝试。@Rawing regex:es现在可以正常工作了。谢谢。没有理解|\d的含义。覆盖一个月的有效天数会导致非常长的RegExp,这不是一个适用的解决方案。您最好使用日期数据类型和相关方法。