我正在寻找一个正则表达式来匹配我的日期格式
mm/dd/yyyy hh:mm:ss.SSS AM/PM
我在网上发现了
^(((013578|102)/.-/.-\s(00-9|10-2):(00-9|1-59\d):(00-9|1-59\d)\s(AM|am|PM|pm))|((013456789|1012)/.-/.-\s(00-9|10-2):(00-9|1-59\d):(00-9|1-59\d)\s(AM|am|PM|pm))|((02)/.-/.-\s(00-9|10-2):(00-9|1-59\d):(00-9|1-59\d)\s(AM|am|PM|pm))|((02)/.-/.-\s(00-9|10-2):(00-9|1-59\d):(00-9|1-59\d)\s(AM|am|PM|pm)))$
这不符合我的约会对象
2014年12月6日12:45:56.12上午
怎样才能接受以上几毫秒呢?
发布于 2015-12-21 01:59:59
一个简单而快速的解决方案:
\d\d\/\d\d\/\d\d\d\d \d\d\:\d\d\:\d\d\.\d\d\d (AM|PM|am|pm)
如果您想在PCRE中使用它,需要在模式的开始和结束中添加一个像#这样的分隔符:
#\d\d\/\d\d\/\d\d\d\d \d\d\:\d\d\:\d\d\.\d\d\d (AM|PM|am|pm)#
为了获得更高的准确性:
([0]\d|1[012])\/([012]\d|3[01])\/\d\d\d\d ([01]\d|2[0123])\:[012345]\d\:[012345]\d\.\d\d\d (AM|PM|am|pm)
嗯,第一种方法可以接受无效的值,比如99/99/9999 99:99:99.999 AM
,我更倾向于使用第二种方法,因为在99.99%的情况下,微优化是不好的:)
https://stackoverflow.com/questions/34387825
复制相似问题