对匹配值YYYYMM
问题描述:
正则表达式我需要一些正则表达式为.NET符合以下模式:YYYYMM对匹配值YYYYMM
其中:
- YYYY是年 2000年至2049年之间
- MM是01和12
之间的个月我也做了下面的一个问题这一点,是它包含无效的月份值。
[2]{1}[0]{1}[0-4]{1}[0-9]{1}[0-1]{1}[0-9]{1}
有什么建议吗?
答
这应该工作:20[0-4]\d(0[1-9]|1[0-2])
一个月匹配,你需要寻找之一:
- 以后内容从
0
以后内容从[1-9]
或 - 一个
1
[0-2]
如果您想要捕捉的年份和月份,(20[0-4]\d)(0[1-9]|1[0-2])
如果你不想捕捉任何一年或一个月,20[0-4]\d(?:0[1-9]|1[0-2])
如果你想用的名字捕捉它们,(?<year>20[0-4]\d)(?<month>0[1-9]|1[0-2])
感谢看来这是我需要的。 – ArBR 2011-03-04 18:07:24
您可能会考虑进行一些小调整:在括号内添加一个?:防止在月份创建捕获组,例如'20 [0-4] [0-9](?: 0 [1-9] | 1 [0-2])'。 – 2011-03-04 18:26:04