我正在尝试制作一个日期正则表达式,允许从1900年到2099年,使用19或20个可选项。
我差不多了,但我找不到允许19或20个可选部分的方法。这就是我所拥有的:
(?:20)(?:19)?[0-9][0-9]
测试结果:
String preg_match is this ok?
====== ========== ===========
55 yes yes
1955 yes yes
2055 yes yes
201955 yes no
有人可以帮忙吗?
答案 0 :(得分:4)
这样做:
^(?:19|20)?\d{2}$
它说:
^ =字符串开头
(?: 19 | 20)? =匹配19或20而不捕获,零次或一次
\ d {2} = 2位小数
$ =字符串结尾
答案 1 :(得分:1)
((20)|(19))?
管道的意思是“OR”,由于问号
,它们是可选的