image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image

AP

Adailton Palhano10/10/2022 00:00
Compartilhe

Um pouco sobre Expressões Regulares

  • #Programação para Internet

Já precisou resolver algum problema com strings e quando foi buscar alguma solução na internet encontrou algo estranho relacionado a regex?

É sobre isso que iremos falar um pouco.

image

E é muito mais fácil do que se parece!

O regex é uma abreviação em inglês de Regular Expression, ou seja, Expressões Regulares. Ele é uma ferramenta bastante abrangente, extensa e poderosa utilizada na manipulação de strings e pode ser facilmente encontrada em diversas linguagens de programação.

Ela se baseia na utilização de metacaracteres para composição de padrões de strings para processar um texto a parte e encontrar trechos que se adequem a tais padrões. A composição desses padrões podem ser um desafio complexo, contudo, tentar compreender a essência por trás é muito importante.

 

É válido mencionar que alguns aspectos apresentados aqui podem ser diferentes dependendo da linguagem de programação. Mas o princípio do uso da ferramenta é o mesmo. 

Vamos falar um pouco sobre esses metacaracteres tentando montar um padrão para identificar números de telefones. No site regexpal.com podemos visualizar os testes das strings que iremos montar.

Os metacaracteres:

/<string>/

As barras são usadas para delimitar o padrão a ser buscado.

/^<string>/

O circunflexo indica que padrão deve iniciar com a string determinada.

/<string>$/

O dolar indica que o padrão deve finalizar com a string determinada.

/\/

A barra invertida indica uma sequência especial para identificar um determinado elemento.

/\d/

Indica a ocorrência de um dígito simples.

/\w/

Indica a ocorrência de uma caracter simples (inclui letras,dígitos e underlines).

/\s/

Indica a ocorrência de um espaço vazio.

Ela também é usada para escape de caracteres especiais como os parênteses, por exemplo:

abre parêntese

/\(/

e fecha parêntese.

 /\)/
/<string>+/

O sinal de mais indica a ocorrência do elemento string uma ou mais vezes.

/<string>*/

O asterisco indica a ocorrência do elemento string zero ou mais vezes.

/<string>?/

O sinal de interrogação indica a ocorrência do elemento string uma ou nenhuma vez.

Com esses metacaracteres podemos tentar formar um padrão para identificar números de telefones simples. Seria algo mais ou menos assim.

/^\d\d\d\d-\d\d\d\d$/

Dessa forma conseguiremos identificar em um texto todos os números de telefone. Mas podemos aprimorar ainda mais esse exemplo utilizando alguns outros metacaracteres.

/<string>{n}/

As chaves funcionam como quantificadores de metacaracter. O valor de n indica a quantidade.

/(<string>)/

Os parênteses servem para agrupar elementos que formam o padrão. Eles podem ser acessados posteriormente através de variáveis especiais.

/[(<string>)]/

Os colchetes servem para definir uma classe de caráter própria, por exemplo:

/[1,3,5,7]/ 

O padrão acima identifica um desses números que compõem a classe. Intervalos podem ser usados também, como:

/[a-z]/ 

Nesse caso será capturado um elemento de a à z.

Com esses novos caracteres podemos tentar fazer da seguinte forma:

/^(\d{3})?(\(\d{2}\)|\d{2})?(\d{4,5})(-)?(\d{4})$/

Agora ele será capaz de identificar qualquer formato de número de telefone, seja ele fixo ou celular, com ddd ou não, com código de operadora ou não, com hífen ou não.

É importante lembra que os padrões formados são caso sensitivos, isto é, eles diferenciam minúsculas de maiúscula. Para impedir essa forma de avaliação pode-se usar a flag i logo após a barra delimitadora.

/<string>/i

#regex

Compartilhe
Comentários (0)