PHP preg_match(): Expressões Regulares (Regex)
⚡ Resumo Inteligente
Expressões regulares em PHP são ferramentas de correspondência de padrões que validam, dividem e substituem texto em uma única expressão. Este guia aborda as funções principais `preg_match`, `preg_split` e `preg_replace`, explica os metacaracteres comuns e cria um padrão de validação de e-mail funcional passo a passo.

O que é uma expressão regular em PHP?
Expressões regulares em PHPExpressões regulares, também conhecidas como regex, são uma ferramenta poderosa de correspondência de padrões que pode ser executada em uma única expressão. Elas usam caracteres especiais como +, - e ^ para criar expressões complexas. Podem ajudar você a realizar tarefas como validar endereços de e-mail, endereços IP e muito mais.
Por que usar expressões regulares
- As expressões regulares em PHP simplificam a identificação de padrões em dados de string chamando uma única função. Isso nos economiza tempo de programação.
- Ao validar dados inseridos pelo usuário, como endereços de e-mail, nomes de domínio, números de telefone e endereços IP.
- Destacando palavras-chave nos resultados de pesquisa
- Ao criar um modelo HTML personalizado. Regex em PHP pode ser usado para identificar as tags do modelo e substituí-las por dados reais.
Funções de expressão regular integradas em PHP
O PHP possui funções integradas que nos permitem trabalhar com expressões regulares, as quais aprenderemos neste tutorial. Vamos analisar as funções de expressão regular mais utilizadas em PHP.
- A função `preg_match()` em PHP é usada para realizar a correspondência de padrões em uma string. Ela retorna `true` se uma correspondência for encontrada e `false` caso contrário.
- A função `preg_split()` em PHP é usada para realizar uma correspondência de padrões em uma string e, em seguida, dividir os resultados em uma matriz numérica.
- preg_replace() em PHP – esta função é usada para realizar uma correspondência de padrão em uma string e então substituir a correspondência pelo texto especificado.
A seguir está a sintaxe para uma função de expressão regular, como preg_match(), preg_split() ou preg_replace().
<?php
function_name('/pattern/',subject);
?>
AQUI,
- “function_name(…)” é preg_match(), preg_split() ou preg_replace().
- “/…/” as barras invertidas denotam o início e o fim da nossa expressão regular.
- “'/pattern/'” é o padrão que precisamos corresponder.
- “assunto” é a string de texto a ser comparada
Vejamos agora exemplos práticos que implementam as funções regex do PHP acima.
Preg_match() em PHP
O primeiro exemplo usa a função preg_match() para realizar uma correspondência de padrão simples para a palavra "guru" em um determinado texto. URL.
O código abaixo mostra a implementação da função preg_match() para o exemplo acima.
<?php $my_url = "www.guru99.com"; if (preg_match("/guru/", $my_url)) { echo "the url $my_url contains guru"; } else { echo "the url $my_url does not contain guru"; } ?>
Navegue até o URL http://localhost/phptuts/preg_match_simple.php
Vamos examinar a parte do código responsável pela nossa saída. preg_match('/guru/', $my_url). AQUI,
- “preg_match(…)” é a função regex do PHP
- “'/guru/'” é o padrão de expressão regular a ser correspondido
- “$my_url” é a variável que contém o texto a ser comparado.
PHP Preg_split()
Vejamos agora outro exemplo que utiliza a função preg_split().
Pegaremos uma frase de string e a explodiremos em um array; o padrão a ser correspondido é um espaço único.
A string de texto a ser usada neste exemplo é “I Love Regular Expressions”.
O código abaixo ilustra a implementação do exemplo acima.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Navegue até o URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Vamos agora analisar a função preg_replace(). Função PHP que executa uma correspondência de padrão e depois substitui o padrão por outra coisa.
O código abaixo procura a palavra guru em um corda.
Substitui a palavra "guru" pela palavra "guru" cercada por código CSS que destaca a cor de fundo.
<?php $text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com"; $text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text); echo $text; ?>
Supondo que você tenha salvo o arquivo preg_replace.php, navegue até o URL http://localhost/phptuts/preg_replace.php
Metacaracteres de Expressão Regular
Os exemplos acima usaram padrões muito básicos. Os metacaracteres permitem realizar correspondências de padrões mais complexas, como testar a validade de um endereço de e-mail. Vejamos agora os metacaracteres mais comuns.
| Metacaractere | Descrição | Exemplo |
|---|---|---|
| . | Corresponde a qualquer caractere único, exceto uma nova linha | /./ corresponde a qualquer coisa que tenha um único caractere |
| ^ | Corresponde ao início de uma sequência de caracteres ou exclui caracteres. | /^PH/ corresponde a qualquer string que comece com PH |
| $ | Corresponde a um padrão no final da string. | /com$/ corresponde a guru99.com, yahoo.com etc. |
| * | Corresponde a zero ou mais dos caracteres anteriores. | /com*/ corresponde a computador, comunicação etc. |
| + | Exige que o(s) caractere(s) anterior(es) apareça(m) pelo menos uma vez. | /yah+oo/ corresponde ao Google |
| \ | Usado para escapar de metacaracteres | /yahoo+\.com/ trata o ponto como um valor literal |
| [...] | Classe de personagem | /[abc]/ corresponde a a, b ou c |
| AZ | Corresponde a letras minúsculas | /az/ corresponde a legal, feliz etc. |
| AZ | Corresponde a letras maiúsculas | /AZ/ corresponde a O QUE, COMO, POR QUE etc. |
| 0-9 | Corresponde a qualquer número entre 0 e 9 | /0-4/ corresponde a 0,1,2,3,4 |
A lista acima fornece apenas os metacaracteres mais comumente usados em expressões regulares.
Vejamos agora um exemplo bastante complexo que verifica a validade de um endereço de e-mail.
<?php $my_email = "name@company.com"; if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) { echo "$my_email is a valid email address"; } else { echo "$my_email is NOT a valid email address"; } ?>
Explicando o padrão de validação de e-mail
AQUI,
- “/…/” inicia e termina a expressão regular
- “^[a-zA-Z0-9._-]” corresponde a quaisquer letras minúsculas ou maiúsculas, números entre 0 e 9 e pontos, sublinhados ou traços.
- “+@[a-zA-Z0-9-]” corresponde ao símbolo @ seguido por letras minúsculas ou maiúsculas, números entre 0 e 9 ou hífens.
- “+\.[a-zA-Z.]{2,5}$/” escapa o ponto usando a barra invertida e, em seguida, corresponde a quaisquer letras minúsculas ou maiúsculas com um comprimento de caractere entre 2 e 5 no final da string.
Navegue até o URL http://localhost/phptuts/preg_match.php
Como você pode ver na análise acima, os metacaracteres são muito poderosos quando se trata de identificar padrões.




