1

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

(\\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}是 ?
4

1 回答 1

8

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

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

您也有点偏离0[1-9]:它匹配任何01, 02, ..., 091不能在开头)。你是对的1[012]

总的来说,这就是您的正则表达式的样子:

正则表达式可视化

如果您想了解更多关于它们的信息,关于正则表达式的一个很好的在线参考是regular-expressions.info


请注意,在上面的答案中,我假设您的意思\d\\d,并且使用了后者,因为您\以需要转义 s 的字符串格式表示正则表达式。然而,在表示通用正则表达式时,最好不要\转义 s。换句话说,\\d可能会被解释为文字反斜杠后跟 a d,所以\\d{4}会匹配\dddd。大概这不是您的意思;

于 2013-08-19T13:29:33.007 回答