Função preg_grep
A função preg_grep retorna um array de elementos que correspondem à expressão regular fornecida. O primeiro parâmetro da função aceita uma string com a expressão regular, e o segundo - o array para pesquisa. O terceiro parâmetro opcional define se deve retornar os elementos que NÃO correspondem à expressão regular.
Sintaxe
preg_grep(pattern, array, [flags]);
Flags
| Flag | Descrição |
|---|---|
PREG_GREP_INVERT |
Inverte o resultado - retorna os elementos que NÃO correspondem ao padrão. |
PREG_GREP_NO_ERROR |
Não gera erro em caso de expressão regular incorreta (PHP 8.1+). |
Exemplo
Vamos encontrar todos os elementos do array que começam com um dígito:
<?php
$arr = ['a1', '2b', 'c3', '4d', 'e5'];
$res = preg_grep('/^\d/', $arr);
var_dump($res);
?>
Resultado da execução do código:
['2b', '4d']
Exemplo
Vamos usar a flag PREG_GREP_INVERT para obter os elementos que NÃO correspondem à expressão regular:
<?php
$arr = ['a1', '2b', 'c3', '4d', 'e5'];
$res = preg_grep('/^\d/', $arr, PREG_GREP_INVERT);
var_dump($res);
?>
Resultado da execução do código:
['a1', 'c3', 'e5']
Exemplo
Vamos encontrar todos os elementos do array que contêm apenas dígitos:
<?php
$arr = ['123', 'abc', '45', 'de', '678'];
$res = preg_grep('/^\d+$/', $arr);
var_dump($res);
?>
Resultado da execução do código:
['123', '45', '678']
Veja também
-
a função
preg_match,
que executa verificação de correspondência com expressão regular -
a função
preg_replace,
que executa pesquisa e substituição por expressão regular