正则表达式匹配YYYYMM的值

时间:2011-03-04 18:02:54

标签: .net regex pattern-matching

我需要 .net 正则表达式与以下模式匹配: YYYYMM

其中:

  • YYYY是2000年至2049年之间
  • MM ,介于01和12之间

我已经完成了以下问题,包括无效的月份值。

[2]{1}[0]{1}[0-4]{1}[0-9]{1}[0-1]{1}[0-9]{1}

任何建议?

2 个答案:

答案 0 :(得分:8)

这应该有效: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])

捕获它们

答案 1 :(得分:4)

(?<year>20[0-4]\d(?<month>(0[1-9])|(1[0-2])))

这是我将在两个命名组中分开的正则表达式