正则表达式日期模式匹配

时间:2013-08-19 13:24:40

标签: regex

我是正则表达式的新手。想知道以下日期模式。

(\\d{2}(0[1-9]|1[012]|[0]{2}))

我只知道,

  • 0[1-9]是01或12或.... 19
  • 1[012]为10或11或12
  • [0]{2}是0000?
  • \\d{2}是?

1 个答案:

答案 0 :(得分:8)

\d是一个预定义的字符类,通常等同于[0-9](有时它还包括unicode数字,具体取决于正则表达式引擎)。此外,{n}是量词,X{n}X完全匹配n次。因此,\d{2}匹配2个连续数字。

另外,[0]{2}是连续2 0 s:00(不是0000)。

你还略微关注0[1-9]:它与0102,......,091无法匹配在开始)。你对1[012]是正确的。

总的来说,这就是你的正则表达式:

Regular expression visualization

如果您想了解更多关于它们的信息,那么关于正则表达式的在线参考资料是regular-expressions.info


请注意,在上面的回答中,我假设你的\d\\d,并使用了后者,因为你要用字符串格式表示正则表达式,需要\ s被逃脱。但是,在表示通用正则表达式时,最好不要将\保留为未转义状态。换句话说,\\d可能被解释为后跟d的文字反斜杠,因此\\d{4}将匹配\dddd。大概这不是你的意思;