Expressões regulares no PHP

Este artigo irá abordar conceitos sobre a utilização de expressões regulares com a linguagem PHP. Tópicos abordados: padrão POSIX, busca de padrões e curingas (wildcards).


[ Hits: 44.257 ]

Por: Marcelo Santos Araujo em 10/09/2004


Sub-expressões regulares e derivados



Contando sub-expressões:

(php ){1,4}

Busca pelo padrão:
'php', 'php php', 'php php php', 'php php php php '.

Utilização do OR (Ou)


Exemplo:

(com) | (edu) | (com.br) | (net) | (inf.br)

Busca pela padrão com ou edu ou com.br ou net ou inf.br.

Síntese de Caracteres Especiais




Exemplo:

(teste ){1,2} - 'teste','teste teste ' - busca de 1 ate 2 vezes repetidas.

Funções de Expressões Regulares no PHP


Utilizaremos apenas essas duas funções abaixo para demonstrar o uso de expressões regulares:

eregi -- expressão regular não-sensitiva

Protótipo:
bool eregi ( string pattern, string string [, array ®s])

ereg -- Expressão regular sensitiva

Protótipo:
bool ereg ( string pattern, string string [, array ®s])

Página anterior     Próxima página

Páginas do artigo
   1. Conceitos sobre expressões regulares
   2. Sub-expressões regulares e derivados
   3. Exemplos com PHP
Outros artigos deste autor

Replicação em banco de dados MySQL

Leitura recomendada

Iniciando no mundo das expressões regulares (parte 2)

Verificação da sintaxe do e-mail 1.0

Iniciando no mundo das expressões regulares (parte 1)

Executando comandos DML em base de dados MySQL através do Eclipse PHP (Bônus: Temas e Fontes no Eclipse)

PHP-GD retorna status do MSN Messenger , Skype e GTalk

  
Comentários
[1] Comentário enviado por arrb em 10/09/2004 - 08:43h

Bom artigo, no caso da ER para tags creio q o correto seria:
"<[A-Za-z]+[A-Za-z0-9]*>" .

esta ER peraria <a> <h1> <dd> etc...

Blz

[2] Comentário enviado por gatecrasher em 10/09/2004 - 10:59h

isso ai mesmo,

desculpa a falha

[3] Comentário enviado por claudiolima em 01/06/2006 - 12:39h

Bom artigo para incentivar cada vez mais a programação! Blz.

[4] Comentário enviado por Gutto em 21/10/2007 - 16:00h

Só um detalhe, que para iniciantes pode dar problemas. Nos exemplos acima, o correto é fechar o parêntese do if( e do eregi(. Nos exemplo só está fechando um dos dois.

<?php

function verifica_alfabeto($var)
{
if(eregi("[a-zA-Z]",$var))
{
echo "Somente contem caracteres do alfabeto";
}
}

// Validação de email:
if(!eregi('[a-zA-Z0-9_\-\.][email protected][a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$',$var_email)) {
echo "Email inválido!";
}


if(eregi("[0-9]",$nome))
{
// se campo nome conter números
echo "Campo: nome invalido";
}

// Para verificar a incidência de tags HTML
// Existem outras maneiras de filtrar
if(eregi("[<a-zA-Z>]",$var))
{
echo "Apresentam tags html";
} ?>


Contribuir com comentário



\ Caractere de escape.
^ Início de string ou NOT em posição inicial .
$ Buscar no fim da string.
. Buscar por qualquer caractere exceto por \n.
| OR.
( Início de Subpadrão.
) Fim de Subpadrão.
* Repete 0 ou mais vezes.
+ Repete 1 ou mais vezes.
{ Quantificador de min.
} Quantificador de max.