Функция preg_grep
Функция preg_grep
возвращает массив элементов, которые соответствуют заданному регулярному выражению. Первым параметром функция принимает строку с регулярным выражением, а вторым - массив для поиска. Третий необязательный параметр определяет, следует ли возвращать элементы, которые не соответствуют регулярному выражению.
Синтаксис
preg_grep(pattern, array, [flags]);
Флаги
Флаг | Описание |
---|---|
PREG_GREP_INVERT |
Инвертирует результат - возвращает элементы, которые НЕ соответствуют шаблону. |
PREG_GREP_NO_ERROR |
Не генерирует ошибку при некорректном регулярном выражении (PHP 8.1+). |
Пример
Найдем все элементы массива, которые начинаются с цифры:
<?php
$arr = ['a1', '2b', 'c3', '4d', 'e5'];
$res = preg_grep('/^\d/', $arr);
var_dump($res);
?>
Результат выполнения кода:
['2b', '4d']
Пример
Используем флаг PREG_GREP_INVERT для получения элементов, которые НЕ соответствуют регулярному выражению:
<?php
$arr = ['a1', '2b', 'c3', '4d', 'e5'];
$res = preg_grep('/^\d/', $arr, PREG_GREP_INVERT);
var_dump($res);
?>
Результат выполнения кода:
['a1', 'c3', 'e5']
Пример
Найдем все элементы массива, содержащие только цифры:
<?php
$arr = ['123', 'abc', '45', 'de', '678'];
$res = preg_grep('/^\d+$/', $arr);
var_dump($res);
?>
Результат выполнения кода:
['123', '45', '678']
Смотрите также
-
функцию
preg_match
,
которая выполняет проверку на соответствие регулярному выражению -
функцию
preg_replace
,
которая выполняет поиск и замену по регулярному выражению