日期格式的正则匹配

作者:enenba | 发表于:2012-01-04 22:23 | 分类:正则表达式

几种日期格式的正则匹配,可以匹配非中文的时间格式。

如下格式的时间

2012-01-04

2012/01/04

2012 01 04

2012.01.04

 

正则:

(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])

 

正则解释:

(19|20)[0-9]{2}  以19或20开头,0~9重复两次。  匹配1900~2099

[- /.] 时间的分格符, 可以匹配“-”、“空格”、“/”、“.”

(0[1-9]|1[012])  可以匹配01~12。 以0开头的为前导数字 01~09, 以1开头的为10、11、12   匹配月份

(0[1-9]|[12][0-9]|3[01]) 以0开头的为前导01~09,以12开头的数字10~29, 最后为30、31  天数

 

php写法:

<?php
$preg='/(19|20)[0-9]{2}[- \/.](0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])/i'; 
$str='2001-12-01';
preg_match_all($preg, $str, $rr);
print_r($rr);
?>

上一篇: 正则匹配IP地址   |   下一篇:PHP正则常见的错误提示» 标签: 正则表达式 正则表达式教程

评论: