Arquivo

Textos com Etiquetas ‘regex’

Expressões Regulares

30, março, 2009

Uma coisa que volta e meia me bate a porta são as expressões regulares, o fato é que essas danadinhas são uma “Mão na Roda” em algumas ocasiões, por exemplo quando precisamos trabalhar com o Mod Rewrite do Apache, validações de strings entre muitas outras coisas.

Segundo a Wikipedia uma expressão regular (ou o estrangeirismo regex, abreviação do inglês regular expression) provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres. Uma expressão regular provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres.

Vamos deixar de blá-blá-blá e ver um pouco destas benditas.

([\._0-9A-Za-z-]+)@([0-9A-Za-z-]+)(\.[0-9A-Za-z\.]+)

Bem, a primeira vez que vemos algo como a linha acima ficamos um tanto quanto assustados, entretanto, na verdade esta é uma expressão regular bem simples, iniciamos com um “()“ estes metacaracteres representam um grupo, para exemplificar podemos utilizar as expressões matemáticas que aprendemos na infância, nesta expressão exemplo percebemos claramente três grupos.
Em seguida percebemos “[]” que nas ER representam as listas, elas são exigentes e guardam dentro de si apenas os caracteres que serão casados, podendo conter como no exemplo acima intervalos, vejamos a primeira lista item-a-item.

\. o ponto nas ERs é o metacaracter solitário e casa com qualquer coisa, entretanto no caso citado ele é precedido pela “\” que é o metacaracter de escape, fazendo assim com que o bendito “.” perca o seu poder e vire um “.” literal.

_
não é nenhum metacaracter, portanto um literal.

0-9
lista, casa qualquer número de 0 a 9

A-Z
lista, casa qualquer caracter de A a Z (maiúsculas)

a-z
lista, casa qualquer caracter de a a z.

Enfim, nesta lista a ER irá casar “.” “_” ou qualquer número e qualquer letra, logo em seguida ao grupo temos o metacaracter +, o guloso, que repete em qualquer quantidade pelo menos uma vez, no caso específico acima ele vai repetir a lista.

Na sequencia temos o @ que é um literal e a brincadeira continua, espero que tenham gostado e procurem aprofundar-se nesse maravilhoso mundo das ERs.

No próximo post estarei mostrando como utilizar as Expressões Regulares no PHP.

Aprenda Mais:

Expressões Regulares – Guia de Consulta Rápida

Teste de Expressões Regulares on-line

Wikipedia - Expressão regular

Cheops Malta PHP, PHP-AL ,