【发布时间】:2013-12-19 16:58:49
【问题描述】:
我正在尝试创建一个验证英国日期格式的正则表达式。我有以下内容:
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
这非常适合验证:09/12/2011。但如果日期是:9/12/2011,它将无法正确验证。是否有一个正则表达式允许我在日期部分使用一个数字和两个数字?例如“09”和“9”。
【问题讨论】:
-
@Martinho:我认为 LooDaFunk 对正则表达式有很好的理解——他的正则表达式是有限的,但是是正确的。他坚持一个小细节,这正是人们选择 SO 的原因。
-
@Tim:我很难相信一个可以自己想出的人,至少不能想出
([1-9]|0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d。但是,我可能是错的。 -
@Martinho:我很想深入学习正则表达式,但我没有时间了解它们的每一件事,然后回来做大部分更重要的工作跨度>
-
我觉得两个地方的分隔符段应该是一样的:
…([- /.])…\1…。相应地调整编号,或使用命名的捕获组。
标签: regex