Задать вопрос
@iDrugov
Хуже глупых вопросов только глупые ответы.

Как разбить текст на группы по 3 цифры регуляркой?

Собственно, задача в том, чтобы любое число разбивать на группы пробелом, например: 1 234 или 123 456 789, ну вы поняли.

Решение, вроде бы, очевидно: находим в конце три цифры и используем назад смотрящее, которое отвечает условию: "если впереди есть цифры, то поставить пробел". В моём представлении это было так:
$var = 123456789;
echo preg_replace('/(?=[0-9])[0-9]{3}$/', '-$0', $var); // пробел заменён на дефис для наглядности
// на выходе: 123456-789


Жадные квантификаторы мне не помогли, а делать что-то типа ([0-9]){0,3}([0-9]){0,3}([0-9]){0,3} —не очень прикольно )

Подскажите, как это решается.
  • Вопрос задан
  • 512 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Stimulate
@Stimulate
могу
$var = 123456789;
echo number_format($var, 0, ' ', ' ');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
Питончик, под пыху уж сам как-нибудь перегони:
import re
print(re.sub(r'(\b|\d)(\d+?)(?=(?:\d\d\d)+?\b)', r'\1\2.', "1234567890"))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы