@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} —не очень прикольно )

Подскажите, как это решается.
  • Вопрос задан
  • 505 просмотров
Решения вопроса 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"))
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
от 300 000 до 500 000 ₽
06 мая 2024, в 12:36
30000 руб./за проект
06 мая 2024, в 12:22
5000 руб./за проект
06 мая 2024, в 12:19
1500 руб./в час