【发布时间】:2010-11-07 14:40:13
【问题描述】:
我无法完全理解 ^ 在我的 preg_match 中所做的事情。
if (preg_match('~^(\d\d\d\d)(-(\d{1,2})(-(\d{1,2}))?)?$~', trim($date), $dateParts)) {
echo the $dateparts and do some magic with them
} else {
tell me the date is formatted wrong
}
正如我所见,这是在查看 $date 是否与我阅读的格式匹配 4 位小数 - 1 或 2 位小数 - 1 或 2 位小数
如果匹配,则 IF 语句显示日期,如果不匹配,则会给出日期格式不正确的错误。
不过刚刚过了一年 $date = '1977' 没有其他内容(没有日期或月份)它仍然通过真实并显示日期部分,我认为它会引发错误?
有人能指出我在正则表达式中缺少什么吗?我猜它是 ^ 或者最后的 ?$ 可能意味着只匹配它的一部分?
【问题讨论】:
标签: php regex preg-match