因此,我需要将日期格式化为: 1/2/2022 01/02/2022 01/2/2022 1/02/20202
因此,基本上,日期格式如下: mm/dd/yyyy /d/yyyy mm/d/yyyy m/dd/yyyy /d/yyyy
尽管我讨厌它,但我得到的文件总是这些日期格式的混合。
我试过这种regex格式
(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/?|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:(?:0?2)(\/?|-|\.)(?:29)\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/?|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
但它似乎不能得到一些日期。
发布于 2022-03-04 11:16:30
以一种天真的简单方式,这个regex将把字符串与那些日期邮票相匹配。
^(?:[0-3]?\d[\/]){2}\d{4}$
基本上,有一个斜杠的2组1到2位数字,然后是4位数字。
前两个数字将从0到39。
但是这也允许像‘0/32/00’这样的字符串
将这些范围限制在1至31之间的一种更具体的准则:
^(?:(?:0?[1-9]|[12][0-9]|3[01])[\/]){2}[0-9]{4}$
但是这仍然允许像31/31/2000
这样的数据存储程序
如果添加了负的前瞻性,则可以避免这种情况。
^(?:(?:0?[1-9]|1[012])|(?:1[3-9]|2[0-9]|3[01])(?))[\/](?:0?[1-9]|[12][0-9]|3[01])[\/][0-9]{4}$
这与“15/15/2000”这样的情况不匹配。
但它不会在乎一个月有多少天。
regex101 这里的测试
https://stackoverflow.com/questions/71290162
复制相似问题