2015-04-08 3 views
0

У меня есть пара телефонных номеров, перечисленных в моей базе данных с определенным способом написания.
Я хочу иметь пробел после каждых двух чисел. Я думал, что буду делать:PHP preg_replace phonenumber с тире и цифрами

$numbers = '06-12345678'; 
$regex = '/(\\d{2})(\\d{1})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/'; 
$result = preg_replace($regex, '$1 $2 $3 $4 $5 $6', $numbers); 
echo $result; 

Но это не сработает. Он просто помещает все числа рядом друг с другом.

Мой Ожидаемый выход:

06 - 12 34 56 78 
+0

Что бы ожидаемый результат? – Rizier123

+1

Извините: 06 - 12 34 56 78 – Interactive

+0

Проверьте эту ссылку: -http: //stackoverflow.com/questions/6380596/php-count-add-colons-every-2-characters –

ответ

2

Это должно работать для вас:

$numbers = "06-12345678"; 
echo $result = preg_replace("/(\d{2})-(\d{2})(\d{2})(\d{2})(\d{2})/", "$1 - $2 $3 $4 $5", $numbers); 

регулярок объяснение:

(\d{2})-(\d{2})(\d{2})(\d{2})(\d{2}) 
  • 1-й Захват группы (\ d {2})
  • \ D {2} матч цифра [0-9]
    • кванторных: {2} Ровно 2 раза
  • - соответствует символу - в буквальном смысле
  • 2-й группы Захват (\ d {2}) // < - 4x тот же
  • \ d {2} матча цифра [0-9]
    • Квантор: {2} Ровно в 2 раза

выход:

06 - 12 34 56 78 
+1

Благодарим вас за эту подробную информацию. Он работал нормально. FYI: У меня был один номер телефона 0023-1234567. Это было выведено: '0023 - 12 34 567'. Просто отлично! – Interactive

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