preg_match时间和允许但忽略休息

时间:2014-09-29 13:53:10

标签: php regex preg-match

我试图在pregmatch中匹配24H时间,并将alow空格和日期添加到背面 我只对前5个字符的时间感兴趣。

所以时间(前5个字符)以及之后的任何事情应该被允许,但是被忽略了。

示例 23:20 2014-09-29

我离我有多远?

     $time = '10:30';
     $pattern = '~^([0-1][0-9]|2[0-3]):([0-5][0-9])$~i';
     if (preg_match($pattern, $time, $m)) {
         print_r(" THATS IS A WRAP");
     } else {
         print_r(" INVALID TIME ");
     }

示例 23:20 2014-09-29

2 个答案:

答案 0 :(得分:1)

^([0-1][0-9]|2[0-3]):([0-5][0-9])$

试试这个。你不远。只是你不匹配ampm。见演示。

http://regex101.com/r/nA6hN9/5

答案 1 :(得分:0)

只需删除$锚点

即可
$time = '10:30';
$pattern = '~^([0-1][0-9]|2[0-3]):([0-5][0-9])~';
//                                     here __^
if (preg_match($pattern, $time, $m)) {
     print_r(" THATS IS A WRAP");
} else {
     print_r(" INVALID TIME ");
}

此外,/i修饰符在这里是多余的,因为没有任何字母。