Expressões regulares em PHP: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Expressões Regulares em PHP: uma ferramenta poderosa para trabalhar com texto



Expressões regulares (regex) são sequências de caracteres que definem um padrão para busca e manipulação de strings. Em PHP, elas são implementadas através da biblioteca PCRE (Perl Compatible Regular Expressions) e fornecem aos desenvolvedores recursos flexíveis para validação de dados, análise de texto e substituição de substrings. Neste artigo, vamos abordar as principais funções, sintaxe e exemplos práticos de uso de expressões regulares em PHP.



Principais funções do PHP para trabalhar com expressões regulares



Em PHP, existem várias funções-chave que permitem trabalhar com expressões regulares. Vamos analisar as mais importantes.



preg_match() — busca da primeira correspondência



A função preg_match() busca a primeira correspondência com o padrão em uma string. Ela retorna 1 se uma correspondência for encontrada, 0 se não, e FALSE em caso de erro.



<?php$text = "Meu email: example@mail.com e test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";

if (preg_match($pattern, $text, $matches)) { echo "Email encontrado: " . $matches[0]; // Exibirá: Email encontrado: example@mail.com}?>


preg_match_all() — busca de todas as correspondências



Ao contrário de preg_match(), esta função encontra todas as correspondências em uma string e as coloca em um array multidimensional.



<?php$text = "Meu email: example@mail.com e test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";

preg_match_all($pattern, $text, $matches);print_r($matches[0]);// Exibirá: Array ( [0] => example@mail.com [1] => test@domain.org )?>


preg_replace() — substituição por padrão



A função preg_replace() substitui todas as correspondências com o padrão pela string especificada. Ela suporta referências anteriores e modificadores.



<?php$text = "Hoje é 15.03.2024, e amanhã será 16.03.2024";$pattern = "/(\\d{2})\\.(\\d{2})\\.(\\d{4})/";$replacement = "$3-$2-$1";

echo preg_replace($pattern, $replacement, $text);// Exibirá: Hoje é 2024-03-15, e amanhã será 2024-03-16?>


preg_split() — divisão de string por padrão



A função preg_split() divide uma string em um array de acordo com o padrão especificado. É análoga ao explode(), mas com suporte a expressões regulares.



<?php$text = "maçã, pera; banana: laranja";$pattern = "/[,;: ]+/";

$fruits = preg_split($pattern, $text);print_r($fruits);// Exibirá: Array ( [0] => maçã [1] => pera [2] => banana [3] => laranja )?>


Sintaxe das expressões regulares



As expressões regulares em PHP são delimitadas por separadores (geralmente barras /) e podem conter modificadores após o delimitador de fechamento. Vamos analisar os principais elementos da sintaxe.



Metacaracteres e quantificadores



  • Classes de caracteres: . (qualquer caractere), \\d (dígito), \\w (letra, dígito, sublinhado), \\s (espaço em branco)
  • Quantificadores: * (0 ou mais), + (1 ou mais), ? (0 ou 1), {n,m} (de n a m)
  • Âncoras: ^ (início da string), $ (fim da string), \\b (limite de palavra)
  • Agrupamento: () (captura de grupo), (?:) (grupo não capturante)
  • Alternativa: | (OU lógico)


Modificadores de padrão



  • i — busca sem distinção entre maiúsculas e minúsculas
  • m — modo multilinha (^ e $ funcionam para cada linha)
  • s — o metacaractere . inclui quebra de linha
  • u — suporte a Unicode (obrigatório para trabalhar com

Blogs

Book Recommendations