2016-11-07 4 views
0

Мне нужна помощь с регулярным выражением, с которой я борюсь.Регулярное выражение для преобразования формата времени. with:

Я хотел бы преобразовать:

9.15-11.15 

к:

9:15-11:15 

я получил, насколько:

$message = preg_replace('/([0-9]{1,2}+)\.([0-9]{1,2}+)\-([0-9]{1,2}+)\.([0-9]{1,2}+)/', '$0:$1-$3:$4', $message); 

Это возвращает «9.15-11.15: 9- 11:15 ".

Я не уверен на 100%, если проблема связана с тем, что я делаю или использую preg_replace?

+1

ли вы имеете в виду использовать ' '$ 1: $ 2- $ 3: $ 4'' вместо этого? '$ 0' вернет весь матч, который вам не нужен. – Terry

+0

Почему вы используете регулярное выражение вместо функции str_replace()? – felipsmartins

ответ

1

Если вы действительно нуждаетесь в regex для этого:

$message = 'Hello. This is some string with 9.15-11.15 time inside, and I don\'t want to replace the DOTS... inside'; 
$message = preg_replace('/(\d{1,2})\.(\d{1,2})\-(\d{1,2})\.(\d{1,2})/','$1:$2-$3:$4', $message); 
var_dump($message); 
// string(102) "Hello. This is some string with 9:15-11:15 time inside, and I don't want to replace the DOTS... inside" 
3
echo str_replace('.', ':', '9.15-11.15'); 

пользуются

Смежные вопросы