Expressões Regulares

Introdução e conceitos básicos

Posted by Raphael Lima on 23-08-2016

O que é uma RegExp?

Expressões regulares ou RegExp, é uma ferramenta extremamente útil e, entende-las nos da uma enorme vantagem independente do que estamos fazendo, seja validações de dados de um formulário ou buscando e/ou substituindo uma determinada expressão em um arquivo… Enfim, regexes podem ser utilizadas em diversas situações.

Entenda expressão regular como uma representação elaborada por um conjunto de caracteres que buscam um determinado padrão de texto em um arquivo, onde cada caracter representa uma determinada informação. Observe o seguinte exemplo: em um texto queremos buscar apenas as letras abc podemos fazer isto facilmente utilizando agrupamento de caracteres através da representação [abc]. Para buscar todos os números, [0-9] ou em um intervalo [0-4] e também [A-z0-9] para buscar todas as letras (maiúsculas e minúsculas) e números ou então manda um [\w] que dá na mesma, rsrs. Mas e se quisermos o inverso do que fizemos? É simples, basta adicionarmos o caracter ^ antes da abertura do colchete: [^abc], [^3-6]

Aqui vão alguns exemplos:

  • [a-z] - Reconhece o alfabeto (minúsculas).
  • [A-Z] - Reconhece o alfabeto (maiúsculas).
  • [A-z] - Reconhece o alfabeto (maiúsculas e minúsculas).
  • [0-9] ou [\d] - Reconhece os números de 0 à 9.
  • [\w] - Reconhece todos os caracteres alfanuméricos.
  • [^abc] - Reconhece qualquer caracter, exceto abc
  • [^0-4] - Reconhece todos os números, exceto a sequência 0 1 2 3 4.

A seguir temos alguns exemplos práticos com mais detalhes.

Validação de CEP

A regex a seguir /^[0-9]{5}-[0-9]{3}$/ pode ser utilizada para validar se um CEP foi digitado seguindo o padrão. Vamos detalhar seu funcionamento:

  • /^[0-9]{5} - Essa parte “diz” que o padrão buscado inicia-se e tem que ser um número de 0 a 9 e o valor entre chaves a quantidade de ocorrências, ou seja, cinco números.
  • [0-9]{3}$/ - Nesta, temos praticamente a mesma representação do exemplo anterior, diferenciando apenas a quantidade de ocorrências que nesse caso são 3. Além disso, o caracter $ indica o fim da regex.

Obs: A regex acima também pode ser escrita da seguinte forma: \d{5}-\d{3}.

Validação de email

A seguinte regex ^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2,3} pode ser utilizada para validar se um endereço de email foi escrito de forma correta. Também pode ser escrita da seguinte forma: ^\w*(\.\w*)?@\w*\.[a-z]+(\.[a-z]+)?$.
Vamos detalhar o funcionamento da primeira regex:

  • ^[a-zA-Z0-9][a-zA-Z0-9\._-]+ - Para melhor entendermos, vamos analisar da direita para esquerda. O caracter + significa que a ocorrência imediata anterior a ele deve aparecer ao menos uma vez no padrão. A ocorrência [a-zA-Z0-9\._-] indica que reconhece o alfabeto tanto maiúsculo quanto minúsculo seguido de um . ou _ ou -. A ocorrência [a-zA-Z0-9] reconhece o alfabeto tanto maiúsculo quanto minúsculo e também números.
  • Separamos o email com o @.
  • ([a-zA-Z0-9\._-]+\.) - Agrupamos com parênteses indicando que após o @ deve aparecer uma sequência de letras ou números podendo ser seguidos por . ou _ ou - imediatamente antes do ..
  • [a-zA-Z-0-9]{2,3} - Essa ocorrência representa que após o . devem aparecer dois ou três caracteres alfanuméricos como .com ou .br.

Bom, esse post foi apenas uma introdução sobre expressões regulares e como funcionam. Deixem seus comentários e acompanhem os próximos posts.

Até mais!