ProfiPHPProfiPHP
Категория: Функции для работы с регулярными выражениями (Perl-совместимые)

Функция Preg_replace

Функция Preg_replace выполняет поиск и замену по регулярному выражению.
mixed preg_replace( mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int &$count ]] )
Функция Preg_replace выполняет поиск совпадений в строке Subject с шаблоном Pattern и заменяет их на Replacement.

Параметр Pattern содержит искомый шаблон. Может быть как строкой, так и массивом строк.

Параметр Replacement являет собой строку или массив строк для замены. Если этот параметр является строкой, а Pattern является массивом, все шаблоны будут заменены этой строкой. Если и Pattern и Replacement являются массивами, каждый элемент Pattern будет заменен соответствующим элементом из Replacement. Если массив Replacement содержит меньше элементов, чем массив Pattern, то все лишние шаблоны из Pattern будут заменены пустыми строками.

Параметр Replacement может содержать ссылки вида \\n, либо $n, причем последний вариант предпочтительней. Каждая такая ссылка будет заменена на подстроку, соответствующую n-ой подмаске. n может принимать значения от 0 до 99, причем ссылка \\0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы. Для использования обратного слеша, его необходимо продублировать (строка PHP "\\\\").

При замене по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра (например, установка цифры сразу после совпавшей маски). В таком случае нельзя использовать знакомую нотацию вида \\1 для ссылки на подмаски. Запись, например, \\11, заплутает Preg_replace, так как она не сможет понять, хотите ли вы использовать ссылку \\1, за которой следует цифра 1 или же вы хотите просто использовать ссылку \\11, за которой ничего не следует. Это недоразумение можно устранить, если воспользоваться конструкцией ${1}1, использующей изолированную ссылку $1, и следующую за ней цифру 1.

Параметр Subject содержит строку или массив строк для поиска и замены.

Если Subject является массивом, то поиск с заменой осуществляется для каждого элемента массива Subject, а возвращаемое значение также будет являться массивом.

Параметр Limit указывает максимально возможное количество замен каждого шаблона для каждой строки Subject. По умолчанию равно -1 (без ограничений).

Параметр Count ограничивает количество произведенных замен.

Функция Preg_replace возвращает массив, если параметр Subject является массивом, иначе возвращается строка.

Если найдены совпадения, возвращается новая версия Subject, иначе Subject возвращается нетронутым, в случае ошибки возвращается NULL.

Добавить комментарий

Имя:
Текст комментария: