你能为我翻译一下吗?我的男朋友是一名程序员,并发布了一条我根本无法理解的信息。
^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-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})) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$
这是什么意思?这是带有单词的正常消息还是某种其他代码?
答案 0 :(得分:7)
这是一个试图的所有有效的日期/时间匹配d/m/y H:M:S
格式,有或没有前导零的表达,和使用2-位或4位年,包括年02月29上闰年。不知道为什么他会发送给你这个,除非你的谈话背景以某种方式使它相关。
匹配:
加上24小时格式的时间。
看起来他没有考虑闰秒。坏男孩。
编辑:
再次查看正则表达式,它看起来也不匹配29/2/00 00:00:00
。闰年匹配400年的倍数并不需要考虑两位数年份。它真的不能以80年左右的时间(或00
开始意味着2100而不是2000)的方式打破,除非他想将00
定义为意义2000对于软件的预期寿命而言,如果它存在很长时间,则存在非常微妙的Y2.1K错误。