Страницы

Поиск по вопросам

четверг, 5 марта 2020 г.

preg_replace заменить в строке символы, а цифры оставить

#php #регулярные_выражения


Есть строка в php допустим $str = 'z1.z2.z3.z6'
Как привести её к такому виду '[f1][f2][f3][f6]' через регулярку используя preg_replace ???
То есть везде заменить z на f, но соответствующие числа оставить и заключить выражение
в квадратные скобки.
    


Ответы

Ответ 1



$str = 'z1.z2.z3.z6'; echo preg_replace('/z(\d+)(.|$)/i', '[f${1}]', $str);

Ответ 2



Ещё один вариант $string = 'z1.z2.z3.z6'; $symbol = 'f'; // Символ для замены $pattern = ['~\w(\d)~', '~(?<=^|\.)~', '~(?=\.|$)~', '~\.~']; $replace = [$symbol .'$1', '[', ']', '']; echo preg_replace($pattern, $replace, $string); // Результат: [f1][f2][f3][f6]

Комментариев нет:

Отправить комментарий