Условная замена PHP PCRE2Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Условная замена PHP PCRE2

Сообщение Anonymous »

Я пытаюсь заменить строку условным способом, используя preg_replace в PHP.
Идея довольно проста и работает в регулярном выражении 101, но когда я пробую ее в PHP, это не работает. >
Шаблон поиска:

^([0-9]{3})-?([0-9]{3 })-?([0-9]{3})-?([0-9]{3})?$

Заменить шаблон:

[$1.$2.$3.${4:+$4:000}]

По сути, цель — форматировать строки. Допустимые строки состоят из 9 или 12 цифр в группах по 3 цифры. Если групп 4, это нормально, если 3, мне нужно добавить «000» в качестве последней группы.
Пример — ввод строки:

Код: Выделить всё

009026405
01009556500 (invalid)
226-356-839
009-513-213
000147765000
Ожидаемый результат:

Код: Выделить всё

[009.026.405.000]
01009556500 (unchanged)
[226.356.839.000]
[009.513.213.000]
[000.147.765.000]
Источник PHP:

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/78702568/php-pcre2-conditional-substitution[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»