2009-09-02 81 views
1

從字符串解析時間的最佳方法是什麼?regex/php:從字符串解析時間?

示例字符串:「這是10:45這是10:48,10:49,10:50,22:15」;

預期回報:

[0] = 10:45

[1] = 10時48分

[2] = 11時差11分

[3] = 10: 50

[4] = 22:15

感謝您的任何答覆!!

回答

6

這會給你希望和限制你的小時/分鐘號碼有效值小時的第一位置和分鐘的第一位置輸出:

$y = "this is 10:45 this is 10:48, 10:49, 10:50, 22:15"; 
preg_match_all("/(([0-1]\d|2[0-3]):[0-5]\d)/",$y,$matches); 
print_r($matches[1]); 
/* 
Outputs: 
Array ([0] => 10:45 [1] => 10:48 [2] => 10:49 [3] => 10:50 [4] => 22:15) 
/* 
+1

如果你不想匹配正確的時間,你應該改變正則表達式爲'/([0-1] \ d | 2 [0-3]):[0-5] \ d /',你的'27:00' – RaYell 2009-09-02 04:49:29

+0

這是一個不錯的改進,我會編輯我的答案以添加它。謝謝。 – zombat 2009-09-02 05:51:57

0

這看起來像一個非常簡單的情況。嘗試preg_match_all用 「/ \ d \ d:\ d \ d /」

2
preg_match_all('/\d{2}:\d{2}/', $string, $matches); 

您將在$matches陣列中的所有的比賽。

+1

你只需要在所有比賽你使用'preg_match_all()' – 2009-09-02 04:17:55

+0

@Chris Lutz - 好點。 – RaYell 2009-09-02 04:47:12