Функция PHP preg_replace()

PHP 正则表达式(PCRE)Регулярные выражения PHP (PCRE)

Функция preg_replace выполняет поиск и замену с помощью регулярного выражения.

Синтаксис

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

Ищет в subject совпадения с pattern и заменяет их на replacement.

Описание параметра:

  • $pattern: Шаблон для поиска, может быть строкой или массивом строк.

  • $replacement: Строка или массив строк, используемых для замены.

  • $subject: Целевая строка или массив строк для поиска и замены.

  • $limit: Необязательно. Максимальное количество замен для каждого шаблона в каждой строке subject. По умолчанию -1 (неограниченно).

  • $count: Необязательно. Количество выполненных замен.

Возвращаемое значение

Если subject является массивом, preg_replace() возвращает массив; в противном случае возвращает строку.

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

Примеры

Заменить google на example

<?php $string = 'google 123, 456'; $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = 'example ${2},$3'; echo preg_replace($pattern, $replacement, $string); ?>

Результат выполнения выглядит следующим образом:

example 123,456

Удалить пробельные символы

<?php $str = 'runo o b'; $str = preg_replace('/\s+/', '', $str); //Будет изменено на 'example' echo $str; ?>

Результат выполнения выглядит следующим образом:

example

Поиск и замена с использованием индекса на основе массива

<?php $string = 'The quick brown fox jumped over the lazy dog.'; $patterns = array(); $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements = array(); $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow'; echo preg_replace($patterns, $replacements, $string); ?>

Результат выполнения выглядит следующим образом:

The bear black slow jumped over the lazy dog.

Использование параметра count

<?php $count = 0; echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count); echo $count; //3 ?>

Результат выполнения выглядит следующим образом:

xp***to
3

PHP 正则表达式(PCRE)Регулярные выражения PHP (PCRE)

Другие расширения