Expressões Regulares em PHP com Exemplos: na Prática

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 com Exemplos: na Prática



Expressões regulares (regex) são uma ferramenta poderosa para busca, substituição e análise de texto. Em PHP, elas são implementadas através de um conjunto de funções PCRE (Perl Compatible Regular Expressions). Sem elas, é difícil imaginar validação de formulários, análise de logs ou substituição de padrões em strings.



Neste artigo, abordaremos expressões regulares em PHP com exemplos que você poderá aplicar imediatamente em seus projetos. Não vamos nos aprofundar na teoria — apenas prática, código e cenários reais.



1. Funções Principais para Trabalhar com Regex em PHP



Em PHP, existem três funções-chave que cobrem 95% das tarefas:



  • preg_match() — busca pela primeira correspondência.
  • preg_match_all() — busca por todas as correspondências.
  • preg_replace() — substituição baseada em padrão.
  • preg_split() — divisão de string por padrão.


Todas as funções exigem três parâmetros: padrão (pattern), string (subject) e flags opcionais.



Exemplo 1: Validação de Email



<?php$email = "user@example.com";$pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/";

if (preg_match($pattern, $email)) { echo "Email válido";} else { echo "Email inválido";}?>


Analisando o padrão: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/

  • ^ — início da string.
  • [a-zA-Z0-9._%+-]+ — um ou mais caracteres permitidos.
  • @ — literalmente o caractere @.
  • [a-zA-Z0-9.-]+ — nome do domínio.
  • \\. — ponto (escapado).
  • [a-zA-Z]{2,} — zona do domínio (mínimo 2 letras).
  • $ — fim da string.


Exemplo 2: Extrair Todos os Links de HTML



<?php$html = '<a href="https://pythonlib.ru">Site</a> e <a href="/about">Sobre</a>';$pattern = '/href="([^"]+)"/';

preg_match_all($pattern, $html, $matches);

print_r($matches[1]); // Exibirá array de links?>


Aqui, ([^"]+) é um grupo de captura que busca tudo, exceto aspas, dentro do atributo href.



2. Modificadores e sua Aplicação Prática



Modificadores alteram o comportamento da expressão regular. Eles são colocados após a barra de fechamento (/).



  • i — busca sem distinção entre maiúsculas e minúsculas.
  • m — modo multilinha (^ e $ funcionam para cada linha).
  • s — ponto inclui quebra de linha.
  • U — modo preguiçoso (padrão é ganancioso).
  • u — suporte a UTF-8.


Exemplo 3: Busca de Palavra sem Distinção de Caixa



<?php$text = "PHP é uma linguagem poderosa. php é usado em todo lugar.";$pattern = "/php/i";

preg_match_all($pattern, $text, $matches);echo count($matches[0]); // Exibirá 2?>


Exemplo 4: Trabalhando com Cirílico (UTF-8)



<?php$text = "Olá, mundo!";$pattern = "/[a-záéíóúãõç]+/ui"; // u — UTF-8, i — sem distinção de caixa

preg_match_all($pattern, $text, $matches);print_r($matches[0]); // ['Olá', 'mundo']?>


Sem o modificador u, caracteres acentuados serão processados incorretamente, pois o PHP trata cada byte como um caractere separado.



3. Substituição e Divisão de Strings com Expressões Regulares



A função preg_replace() permite substituir partes de uma string com base em um padrão. Já preg_split() divide uma string como explode, mas com a possibilidade de usar regex.



Exemplo 5: Limpeza de Texto de Tags HTML



<?php$html = "<h1>Título</h1><p>Texto com <b>negrito</b></p>";$clean = preg_replace("/<[^>]+>/", "", $html);echo $clean; //                

Blogs

Book Recommendations