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: 46.503 ]

Por: Marcelo Santos Araujo em 10/09/2004


Conceitos sobre expressões regulares



Expressões Regulares com PHP


Uma expressão regular é uma maneira de descrever um padrão em um trecho de texto ou frase.

Por exemplo, a string "teste" apresenta um padrão textual "teste". Também pode ser associado às letras ou sílabas: "e","te","st","es", etc.

Existem dois padrões disponíveis em PHP:
  • Padrão POSIX (iremos abordar este);
  • Padrão PCRE (Perl-compatible regular expression).

Classes de caracteres no POSIX:



Exemplos de outras utilizações para buscar padrões textuais:

[[:alnum:]] Caracteres alfanuméricos.
[[:alpha:]] Caracteres alfabéticos.
[[:digit:]] Número Decimal (0-9).
[[:lower:]] Caracteres minúsculos.
[[:upper:]] Caracteres maiúsculos.
[[:xdigit:]] Número Hexadecimal .
[[:cntrl:]] Caracteres de Controle.
[[:print:]] Caracteres imprimíveis.
[[:space:]] Caracteres com espaços em branco.


Símbolo *


O símbolo * significa que o padrão a ser encontrado pode se repetir de 0 vezes ate N vezes.

Exemplo:

(php)*teste

Resultado:
'teste', 'php teste', 'php php teste', 'php php php teste', etc

Símbolo +


É utilizado quando se busca um padrão que se repete pelo menos uma vez.

Exemplo:

[[:alnum:]]+

Resultado:
Pelo menos um caractere alfanumérico.

    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)

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

Verificação da sintaxe do e-mail 1.0

Referências ou ponteiros em PHP

Administrando usuários no GNU/Linux e Samba via web com PHP

  
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_\-\.]+@[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts

[a-zA-Z] caracteres do alfabeto (maiúsculo e minúsculo).
[aeiou] apenas vogais.
[^a-z] tudo menos os caracteres do alfabeto (minúsculo).
[^aeiou] - apenas consoantes O caractere ^ representa fora do intervalo das vogais. Não está contido entre aeiou..