我是正则表达式的新手。想知道下面的日期模式。
(\\d{2}(0[1-9]|1[012]|[0]{2}))
我只知道,
0[1-9]
是 01 或 12 或.... 191[012]
是 10 或 11 或 12[0]{2}
是 0000 吗?\\d{2}
是 ?
我是正则表达式的新手。想知道下面的日期模式。
(\\d{2}(0[1-9]|1[012]|[0]{2}))
我只知道,
0[1-9]
是 01 或 12 或.... 191[012]
是 10 或 11 或 12[0]{2}
是 0000 吗?\\d{2}
是 ?\d
是一个预定义的字符类,通常等同于[0-9]
(有时它还包括 unicode 数字,具体取决于正则表达式引擎)。此外,{n}
是一个量词,并且与时间完全X{n}
匹配。因此,匹配 2 个连续数字。X
n
\d{2}
此外,[0]{2}
是 2 个连续0
的 s:(00
不是0000
)。
您也有点偏离0[1-9]
:它匹配任何01
, 02
, ..., 09
(1
不能在开头)。你是对的1[012]
。
总的来说,这就是您的正则表达式的样子:
如果您想了解更多关于它们的信息,关于正则表达式的一个很好的在线参考是regular-expressions.info。
请注意,在上面的答案中,我假设您的意思\d
是\\d
,并且使用了后者,因为您\
以需要转义 s 的字符串格式表示正则表达式。然而,在表示通用正则表达式时,最好不要\
转义 s。换句话说,\\d
可能会被解释为文字反斜杠后跟 a d
,所以\\d{4}
会匹配\dddd
。大概这不是您的意思;