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");
我試圖用「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");
經歷不添加捕獲括號和逃生點:
echo preg_replace("/(\d{1,2})\.(\d{1,2})/","$1:$2","18.00/23.00");
^ ^^^ ^
見PHP demo。
$1
和$2
是backreferences,它指向用capturing groups捕獲的內容。
可以使用str_replace代替
str_replace(".", ":",$your_date);
這可能會產生不必要的替代品。例如,如果您將字符串更改爲'正常時見。 18.00/23.00'。用Wiktor的答案,它仍然可以工作,但對你而言,'.'會被轉換爲''正常時看到你:18:00/23:00' – Henders
你是對的,但是你可以問一下像18.00這樣的時間字符串,不過他不得不小心這個 – akabaka
True,但帶有(\ d {1,2})的正則表示它是專門針對1或2個數字後面的冒號。 – Henders