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