|
|
|
| Смотрите, есть строка
<?php
$a = '4444333322221111';
?>
|
Как можно сделать так, чтобы после каждого 4го символа был пробел, то есть строка приобрела такой вид - 4444 3333 2222 1111 ? | |
|
|
|
|
|
|
|
для: Belkin
(18.11.2011 в 01:35)
| | number_format () | |
|
|
|
|
|
|
|
для: Yuriev
(18.11.2011 в 03:10)
| | Не думаю.... number_format форматирует по 3 цыфры.
Если количество знаков фиксированное - 16, то можно сделать через РВ:
<?php
$s = "1111222233334444";
$s = preg_replace("#(\d{4})(\d{4})(\d{4})(\d{4})#","$1 $2 $3 $4",$s);
echo $s;
?>
| , а если число знаков в $s может быть переменное, то наверно ток через цикл. | |
|
|
|
|
|
|
|
для: Sfinks
(18.11.2011 в 20:08)
| | Спасибо ) но не могли бы Вы объяснить вот это - "#(\d{4})(\d{4})(\d{4})(\d{4})#","$1 $2 $3 $4" ? | |
|
|
|
|
|
|
|
для: Belkin
(19.11.2011 в 13:47)
| | $1, $2, $3, $4 соответствует содержимому круглых скобок в регулярном выражении. Каждые круглые скобки соответствуют 4 символам, это обеспечивается при помощи {4}, а \d требует, чтобы этими символами были числа. | |
|
|
|
|
|
|
|
для: cheops
(19.11.2011 в 16:24)
| | Теперь все ясно, спасибо! | |
|
|
|
|
|
|
|
для: Belkin
(18.11.2011 в 01:35)
| | попробуй такие варианты: (пример на php)
Вариант 1
echo preg_replace('/\d{4}/', "$0 ", "1111222233334444555ss56666");
|
на выходе 1111 2222 3333 4444 555ss5666 6
Тобиш после каждых 4 цыфр будет пробел, даже после последней цыфры в тексте. Но если в тексте не точное количество цыфр, количество символов в строке не делиться на 4, или в тексте есть не только цыфры, то будет небольшая каша.
Вариант 2
echo preg_replace('/\G\d{4}/', "$0 ", "1111222233334444555ss56666");
|
на выходе 1111 2222 3333 4444 555ss56666
Тобиш тоже самое что в 1 варианте но после первого сбоя уже пробелы ставить не будет. Также этот вариант работает только в php(PCRE) регулярках | |
|
|
|
|
|
|
|
для: duhon
(21.11.2011 в 13:37)
| | Учту, спасибо! | |
|
|
|