PHP Academy · Aula

Correspondência com preg_match

Teste textos contra padrões e capture grupos.

Aula 2 de 413 etapas

Correspondência com preg_match é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

Assinatura de preg_match()

preg_match($pattern, $subject, &$matches) retorna 1 se o padrão corresponder, 0 se não corresponder ou false em caso de erro.

Teste de correspondência simples

Use preg_match como um teste booleano — o valor de retorno 1 significa que foi encontrado.

<?php
$email = "user@example.com";
if (preg_match('/\w+@\w+\.\w+/', $email)) {
    echo "Looks like an email";
}

Grupos de captura com $matches

$matches[0] é a correspondência completa; $matches[1], $matches[2]... são grupos de captura.

<?php
preg_match('/^(\w+)\s(\w+)$/', "John Smith", $m);
echo $m[1]; // "John"
echo $m[2]; // "Smith"

Capturas nomeadas

Use (?P<name>...) para grupos de captura nomeados — acessados como $matches["name"].

<?php
preg_match('/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
           '2025-06-15', $m);
echo $m['year'];  // 2025

Parâmetro de deslocamento

O quarto parâmetro especifica em que posição da cadeia a correspondência deve começar (deslocamento em bytes).

<?php
preg_match('/\d+/', 'abc123def456', $m, 0, 3);
echo $m[0]; // "123"

PREG_OFFSET_CAPTURE

Obtenha tanto o valor correspondente quanto seu deslocamento em bytes.

<?php
preg_match('/\d+/', "price: 42 USD", $m, PREG_OFFSET_CAPTURE);
echo $m[0][0]; // "42"
echo $m[0][1]; // 7 (byte offset)

preg_match_all()

preg_match_all() encontra todas as correspondências e retorna a quantidade.

<?php
$html = '<a href="a.com">A</a> <a href="b.com">B</a>';
preg_match_all('/<a href="([^"]+)">/', $html, $m);
print_r($m[1]); // ["a.com", "b.com"]

Exemplo de validação de e-mail

Uma expressão regular prática para e-mail:

<?php
function isEmail(string $s): bool {
    return (bool) preg_match(
        '/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/',
        $s
    );
}

Validação de telefone

Valide números de telefone internacionais:

<?php
preg_match('/^\+?[1-9]\d{7,14}$/', '+1234567890', $m);

Tratamento de erros

Se o padrão for inválido, preg_match() retorna false. Verifique com === false e use preg_last_error() para obter detalhes.

Dica de desempenho

PHP armazena internamente em cache os padrões PCRE compilados — se você usar a mesma expressão regular em um laço, nenhuma etapa adicional será necessária.

Quando não usar expressões regulares

Para dados estruturados, PHP oferece funções específicas: filter_var(FILTER_VALIDATE_EMAIL), parse_url() — prefira-as a expressões regulares criadas manualmente.

Verificação rápida

O que $matches[0] contém depois de preg_match?

Grátis para começar

Aprenda PHP com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
49
Aulas
195

Perguntas Frequentes

A aula “Correspondência com preg_match” é grátis?

Sim — o texto completo de “Correspondência com preg_match” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Correspondência com preg_match”?

Teste textos contra padrões e capture grupos. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Correspondência com preg_match”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos da sintaxe de expressões regulares
  2. Correspondência com preg_match
  3. Substituição de texto com preg_replace
  4. Divisão e padrões práticos
← Voltar para PHP Academy