需要帮助查找或具有MM/YY或MM/YYYY格式的RegEx匹配。我的RegExFu很弱,我甚至不知道从哪里开始写这篇文章。
月份应该是1-12年,年份很长,2009年以后的任何事情都应该有效。很抱歉之前没有提到更多的细节。此值用作过期日期。
我将为任何超越和验证MM/YY或MM/YYYY格式(即今天的日期)的人添加一个赏金。没有意义的让过期的东西通过第一个验证层。
我感到很遗憾,因为我改变了我的要求,必须更具体地在我需要的中间问题,所以我将奖励给所有谁回答,一旦不赏金窗口到期。
发布于 2010-10-15 17:12:32
关于
^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)$火柴月
// 10 to 12 | 01 to 09 | 1 to 9
(1[0-2]|0[1-9]|\d)和岁月
// 2000 to 2099 | 1900 to 1999
// 01 to 09 | 10 to 99
(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)与任何>= 2010相匹配
/^(1[0-2]|0[1-9]|\d)\/([2-9]\d[1-9]\d|[1-9]\d)$/;结果:
12/2009 : false
1/2010 : true
12/2011 : true
12/9011 : true
12/07 : false
12/17 : true发布于 2010-10-15 17:08:48
试试这个:
^(0?[1-9]|1[0-2])/(19|2[0-1])?\d{2}$限制为1和2位数的月份(01-12,1-12)和2和4年(00-99,1900-2199)。
发布于 2010-10-15 17:09:57
尝试:
var re = new Regex(@"(?<month>\d{2})/(?<year>\d{2}|\d{4})");
var month = re.Match(yourString).Groups["month"];
...另一种选择是:
if(dateStr.Length == 5)
myDateTime = DateTime.ParseExact("MM/YY", dateStr);
else
myDateTime = DateTime.ParseExact("MM/YYYY", dateStr);https://stackoverflow.com/questions/3944446
复制相似问题