2016-12-02 46 views
1

我試圖用「18:00」和「18:00/23:00」替換時間字符串,如:「18.00」或「18.00/23.00」。用preg_match替換時間字符串中的點

現在我做了什麼,但它不工作,我認爲這個

preg_replace("/\d{1,2}.\d{1,2}/","$1:$2","18.00/23.00"); 

回答

2

經歷不添加捕獲括號和逃生點:

echo preg_replace("/(\d{1,2})\.(\d{1,2})/","$1:$2","18.00/23.00"); 
        ^  ^^^ ^

PHP demo

$1$2backreferences,它指向用capturing groups捕獲的內容。

0

可以使用str_replace代替

str_replace(".", ":",$your_date); 
+0

這可能會產生不必要的替代品。例如,如果您將字符串更改爲'正常時見。 18.00/23.00'。用Wiktor的答案,它仍然可以工作,但對你而言,'.'會被轉換爲''正常時看到你:18:00/23:00' – Henders

+0

你是對的,但是你可以問一下像18.00這樣的時間字符串,不過他不得不小心這個 – akabaka

+0

True,但帶有(\ d {1,2})的正則表示它是專門針對1或2個數字後面的冒號。 – Henders