Как форматировать числа с помощью регулярных выражений и PHP

0

Я занимаюсь регулярными выражениями.

Я пытался форматировать числа, используя PHP и regex. Я хочу добавить запятую после каждых 3 цифр, подобных этому 111222333444, в этот формат 111,222,333,444 или 11222333444 до 11,222,333,444 с использованием PHP и регулярного выражения.

Я много искал, но я не мог найти точного решения.

Я знаю, что для работы в php (number_format) есть функция, но я хочу использовать регулярное выражение и PHP для этого, потому что я изучаю регулярное выражение и практикую, поэтому хочу использовать только регулярное выражение и php.

Теги:

1 ответ

6
Лучший ответ

Вот решение на основе регулярных выражений:

$repl = preg_replace('/(?!^)(?=(?:\d{3})+$)/m', ',', $input);

Демо-версия RegEx

Объяснение:

  • (?!^) - Отрицательный взгляд, чтобы убедиться, что мы не находимся в начале ввода
  • (?=(?:\d{3})+$) - Положительный взгляд, чтобы убедиться, что 1 или более трехзначных наборов после текущей позиции
  • Замена - это буквальная запятая
  • Дополнительное объяснение доступно в связанной демонстрации
  • 1
    Можешь немного объяснить? Если цель ОП состоит в том, чтобы изучить их, я думаю, что было бы хорошо узнать подробности здесь. В любом случае, хороший улов +1.
  • 1
    Большое спасибо, это то, что мне нужно.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню