首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期时间的regex模式是什么(2008-09-01 12:35:45 )?

日期时间的regex模式是什么(2008-09-01 12:35:45 )?
EN

Stack Overflow用户
提问于 2008-09-01 10:58:24
回答 14查看 161.4K关注 0票数 65

什么是RegEx模式的DateTime (2008-09-01 12:35:45 )?

我知道这个错误:

没有找到结束分隔符“^”

使用:

代码语言:javascript
复制
preg_match('(?n:^(?=\d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(?(.0?2)(?=.{3,4}(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])(?<sep>[/.-])(?<month>0?[1-9]|1[012])\2(?<year>(1[6-9]|[2-9]\d)\d{2})(?:(?=\x20\d)\x20|$))?(?<time>((0?[1-9]|1[012])(:[0-5]\d){0,2}(?i:\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$)', '2008-09-01 12:35:45');

给出此错误:

警告: preg_match() function.preg-match:编译失败:在第19行的E:\www\index.php中没有任何可重复的偏移量0

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2008-09-01 11:23:07

@Espo:我只想说,regex令人难以置信。我不想写代码来做一些有用的匹配,比如你想知道用户输入的日期和时间。

Tom的解决方案似乎更站得住脚,因为它比以前简单了数百万倍,加上一些括号,您可以很容易地得到用户输入的值:

代码语言:javascript
复制
(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})

如果您使用的是perl,那么您可以使用如下所示的值:

代码语言:javascript
复制
$year = $1;
$month = $2;
$day = $3;
$hour = $4;
$minute = $5;
$second = $6;

其他语言也有类似的能力。请注意,如果要接受值(如个位数月),则需要对regex进行一些小的mods。

票数 85
EN

Stack Overflow用户

发布于 2008-09-01 11:14:40

这是一个简单的版本,适用于提到的格式,但并不是所有其他版本都适用于per @Espos:

代码语言:javascript
复制
(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) 
票数 31
EN

Stack Overflow用户

发布于 2008-09-01 11:03:12

id=610

^(?=\d)(?:(?:31(?!.(?:0?2469|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:16-9|2-9\d)?(?:048|2468|13579)|(?:(?:16|2468|3579)00)))(?:\x20|$))|(?:20-8|1\d|0?1-9))(-./)(?:1012|0?1-9)\1(?:16-9|2-9\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?1-9|1012)(:0-5\d){0,2}(\x20APM))|(01\d|20-3)(:0-5\d){1,2})?$

这个RE验证日期和/或时间模式。2月的日子也被确认为飞跃年。日期: dd/mm/yyyy或d/m/yy格式,在1/1/1600至31/12/9999之间。前导零是可选的。日期分隔符可以是匹配的破折号(-)、斜杠(/)或句点(.)时间: hh:MM:ss AM/PM 12小时格式(12:00上午11:59:59 PM)或hh:MM:ss军事时间格式(00:00- 23:59:59)。12小时时间格式: 1)该小时可能有一个前导零。2)对于12小时格式,分钟和秒是可选的。3)必须使用AM或PM,并且区分大小写。军事时间1)所有时间都必须有一个前导零,少于10.2)分钟是必须的。3)秒是可选的。Datetime:以上格式的组合。首先是日期,然后是由空格分隔的时间。(X) dd/mm/yyyy hh:MM:ss

编辑:确保您从regexlib.com网站复制RegEx,因为StackOverflow有时会删除或销毁特殊字符。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档