preg_replace_callback
Заменяет совпадения с шаблоном результатом функции.
Синтаксис
preg_replace_callback(string|array $pattern, callable $callback, string|array $subject, int $limit = -1): string|array|nullПараметры
| Параметр | Тип | Описание |
|---|---|---|
| $pattern | string|array | Регулярное выражение. |
| $callback | callable | Функция: получает массив совпадения, возвращает замену. |
| $subject | string|array | Исходная строка. |
| $limit | int | Необязательный. Наибольшее число замен. |
Возвращаемое значение
string|array|nullСтрока после замен.
Примеры
Удвоить каждое число в тексте:
<?php
echo preg_replace_callback('/\d+/', fn ($match) => $match[0] * 2, '3 apples and 12 pears');Результат:
6 apples and 24 pearsИз snake_case в camelCase:
<?php
echo preg_replace_callback('/_([a-z])/', fn ($m) => strtoupper($m[1]), 'user_first_name');Результат:
userFirstNameПримечания
Функция нужна, когда замена зависит от найденного текста. Для простой подстановки хватит preg_replace().
См. также
- preg_replace — Заменяет всё, что подошло под регулярное выражение.
- preg_match_all — Находит все совпадения с регулярным выражением.
- array_map — Применяет функцию к каждому элементу массива.
Вопросы и ответы по теме
В учебнике
- Регулярные выражения — Регулярные выражения в PHP — preg_match, preg_replace, preg_split, группы и основные обозначения шаблонов.