我是正则表达式的新手。想知道以下日期模式。
(\\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}
是?答案 0 :(得分:8)
\d
是一个预定义的字符类,通常等同于[0-9]
(有时它还包括unicode数字,具体取决于正则表达式引擎)。此外,{n}
是量词,X{n}
与X
完全匹配n
次。因此,\d{2}
匹配2个连续数字。
另外,[0]{2}
是连续2 0
s:00
(不是0000
)。
你还略微关注0[1-9]
:它与01
,02
,......,09
(1
无法匹配在开始)。你对1[012]
是正确的。
总的来说,这就是你的正则表达式:
如果您想了解更多关于它们的信息,那么关于正则表达式的在线参考资料是regular-expressions.info。
请注意,在上面的回答中,我假设你的\d
是\\d
,并使用了后者,因为你要用字符串格式表示正则表达式,需要\
s被逃脱。但是,在表示通用正则表达式时,最好不要将\
保留为未转义状态。换句话说,\\d
可能被解释为后跟d
的文字反斜杠,因此\\d{4}
将匹配\dddd
。大概这不是你的意思;