gpt4 book ai didi

regex - 有谁知道英国日期格式的正则表达式

转载 作者:行者123 更新时间:2023-12-04 16:36:53 26 4
gpt4 key购买 nike

嗨,有没有人知道英国日期格式的正则表达式,例如日/月/年。

dd 或 mm 可以是 1 个字符,例如1/1/2010 但年份必须始终为 4 个字符。

提前致谢

最佳答案

^\d{1,2}/\d{1,2}/\d{4}$

将匹配 1/1/2000、07/05/1999,但也匹配 99/77/8765。

因此,如果您想做一些基本的合理性检查,您需要
^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/\d{4}$

这仍然会匹配 31/02/9999,所以如果你想捕获那些,它会变得更毛茸茸:
^(?:(?:[12][0-9]|0?[1-9])/0?2|(?:30|[12][0-9]|0?[1-9])/(?:0?[469]|11)|(?:3[01]|[12][0-9]|0?[1-9])/(?:0?[13578]|1[02]))/\d{4}$

但这仍然不会 catch 闰年。所以,修改 a beast of a regex from regexlib.com :
^(?:(?:(?:(?:31\/(?:0?[13578]|1[02]))|(?:(?:29|30)\/(?:0?[13-9]|1[0-2])))\/(?:1[6-9]|[2-9]\d)\d{2})|(?:29\/0?2\/(?:(?:(1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:0?[1-9]|1\d|2[0-8])\/(?:(?:0?[1-9])|(?:1[0-2]))\/(?:(?:1[6-9]|[2-9]\d)\d{2}))$

会匹配
1/1/2001
31/5/2010
29/02/2000
29/2/2400
23/5/1671
01/1/9000

并失败
31/2/2000
31/6/1800
12/12/90
29/2/2100
33/3/3333

总而言之,正则表达式可能能够匹配日期;验证它们不是他们的强项,但如果您可以使用它们,那当然是可能的。但看起来很可怕:)

关于regex - 有谁知道英国日期格式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3767614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com