Как разбить число на триады, используя regexp

Главные вкладки

Аватар пользователя Mirocow Mirocow 16 августа 2011 в 3:54

Задание на собеседовании в одной из контор города Москвы.

<?php
$text 
'10000000000000';  
$text preg_replace(
  
'~' .
  
'(\d' // число
  
'(?=' // после есть (логическое есть)
  
'(?:\d{3})+' // число
  
'(?!\d)' // после нет числа (логическое отрицание)
  
')'
  
')'.
  
'~s'"\\1 "$text);
echo 
$text;?>

Ответ: 10 000 000 000 000

Магия преобразования

10 000000000000
10 000 000 000000
10 000 000 000 000

Анатомия регулярных выражений http://citforum.ru/internet/perl/regexp/#logika

Комментарии