正则表达式匹配YYYYMM的值

ArB*_*rBR 2 .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}
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

Gab*_*abe 8

这应该工作: 20[0-4]\d(0[1-9]|1[0-2])

要匹配一个月,您需要寻找:

  • 一个0接着从什么[1-9]
  • a 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])