Руководство по языку программирования PHP
 

PCRE
 

Строковые функции PHP

preg_filter()

Синтаксис:

preg_filter (pattern , replacement , subject[, limit [, count ]] )

Поддерживается следующими версиями PHP:

3
4
5.3
-
-
+

Описание функции:

Функция preg_filter ищет совпадения регулярного выражения (pattern) с данными в строке (subject) и заменяет их на данные находящиеся в replacement. Функция возвращает только значения совпавшие с шаблоном поиска. Если совпадений не найдено, то будет возвращен нулевой массив (для массива) или NULL (для строки). В случае ошибки будет возвращен NULL

Аргумент
Описание
Тип
pattern

Обязательный аргумент. Регулярное выражение (шаблон поиска)

string, array
replacement

Обязательный аргумент. Строка или массив с данными используемыми для замены данных в subject.

string, array
subject Обязательный аргумент. Строка или массив с данными которые будут заменены. string, array
limit

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

int
count

Необязательный аргумент. Переменная в которой содержится количество произведенных замен.

int

Регулярные выражения

Отдельно следует остановится на регулярных выражениях, без представления о которых довольно трудно (если вообще возможно) разобраться с работой функции preg_replace().

Достаточно хорошо описание регулярных выражений приводится на wikipedia.org, основные моменты применения регулярных выражений также описаны здесь.


Примеры:

Пример 1:

В этом примере показано отличие функции preg_replace() от preg_filter(). Функция preg_replace() вернет все 6 элементов массива, а функция preg_filter() только удовлетворяющие шаблону поиска.

<?php
$subject = array('2', 's', '3', 'r', '4', 'f');
print_r(preg_replace('/[\d]/', '*', $subject));
print_r(preg_filter('/[\d]/', '*', $subject));

?>

Результат:

Array ( [0] => * [1] => s [2] => * [3] => r [4] => * [5] => f )

Array ( [0] => * [2] => * [4] => * )

Пример 2:

В этом примере показана работа функции, когда в качестве pattern и replacement используются массивы. Здесь все цифры будут заменены на "+", а все латинские буквы нижнего регистра на "*".

<?php
$subject = array('2', 's', '3', 'r', '4', 'A');

pattern = array('/[a-z]/','/\d/');

subject = array('*','+');

print_r(preg_filter(pattern, '*', $subject));

?>

Результат:

Array ( [0] => +[1] =>* [2] =>+ [3] => * [4] => + )

 

PCRE функции

preg_grep()
preg_filter()
preg_last_error()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()

 

 

???????@Mail.ru