Você está na página 1de 8

Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

Raul Felipe de Melo Follow


Developer, passionate about coding for fun, tech addicted and open-source lover ❤
May 21, 2017 · 4 min read

Entendendo de uma vez por todas


Expressões Regulares: Parte 1—Introdução

Expressões Regulares

Apresentação
Fala pessoal, tudo certo? Meu nome é Raul, tenho 24 anos e sou
desenvolvedor há quase 3 anos. Comecei a programar na faculdade
com Java, PHP, até me deparar com o fascinante mundo do client-side
e resolver abandonar um pouco o server-side pra entender a mágica
da força trindade HTML, CSS e Javascript.

Há pouco mais de uma semana eu me deparei com um problema que


todo desenvolvedor já se deparou — e se ainda não, eu garanto que
vai — que é encontrar um padrão textual em uma massa de dados. No
caso, era pra fazer uma leitura de um código HTML inteiro e �ltrar
determinadas informações. Essa prática é chamada de Web Scraping.

Fazer isso manualmente apesar de trabalhoso, é fácil, a�nal, é da


natureza do ser humano buscar padrões em todo lugar. Mas e
programaticamente? Bom, aí as coisas começam a �car um tanto
complicadas, a�nal, são muitas variáveis como: “pode ou não vir uma
classe”, “pode ou não ter id” e etc. É aí que a gente se depara com as
tão temidas Expressões Regulares.

1 of 8 7/9/18, 7:33 AM
Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

Voltando ao meu problema, tentei fazer de diversas formas (mesmo


sem saber direito o que eu estava fazendo).

Tentando montar uma regex sem saber nada de regex!

Então eu decidi que eu iria estudar pra valer e aprender de uma vez
por todas isso. E como é como dizem:

A melhor forma de aprender, é ensinando!

. . .

Escopo
Vou dividir essa série de artigos da seguinte maneira:

1. Introdução (esse)

2. Metacharacters

3. Classes de caracteres

4. Quanti�ers

5. Capturando Grupos

6. Âncoras

7. Regex no mundo JavaScript

2 of 8 7/9/18, 7:33 AM
Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

Espero que vocês gostem da série e passem a utilizar no dia-a-dia de


vocês sem precisar consultar no Stack Over�ow! :p

. . .

Mas a�nal, o que é Expressão Regular?


Expressão Regular é uma linguagem de busca de padrões. Resumindo
bem a opera, é uma linguagem onde dizemos o padrão (pattern) do
texto que queremos encontrar, passamos o texto alvo (target) e
pedimos para uma Regex engine (motor) fazer essa busca. É como se
fosse o famoso ctrl+f, só que muito mais profundo e detalhado.

Fluxo de expressão regular.

Como mencionado, para que seja possível realizar uma busca


utilizando Regex, é necessário uma Engine, ou seja, um motor que
tem a �nalidade de avaliar o contexto e fazer a busca.

Cada linguagem de programação tem o seu motor e apesar de Regex


ter um padrão �xo, há algumas diferenças e detalhes na
implementação em cada uma. Mas o que vai mudar de fato é a forma
com que se trabalha, e não a lógica e os padrões em si.

. . .

3.
2.
1. Show me the example
Bom, vamos ver como funciona esse tal de Regex na prática pra �car
mais fácil.

Digamos que eu tenho um arquivo CSV com milhares de linhas com

3 of 8 7/9/18, 7:33 AM
Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

informações de pessoas, contendo na sequência: Nome; Endereço;


Cep e Telefone.

João da Silva;Rua Cabloco terceiro, 25;11111-111;


(99)9999-9999
Márcio Cunha;Rua João Gourlat, 150;12123111;(99)8888-9999

Então, queremos pegar apenas o CEP de todas as linhas de nosso


arquivo. A forma mais fácil (não a mais otimizada) de fazer isso seria:

\d\d\d\d\d-\d\d\d

Mas o que?

Calma jovem, muita calma. Vamos passo-a-passo:

O \d é uma classe de carácter (explicarei no próximo artigo), onde


ele vale números de zero a nove (0–9). Logo, sabemos que todo CEP
possui 5 números, um hífen (-) e mais 3 números. Logo, temos:

\d\d\d\d\d (5 primeiros números)

4 of 8 7/9/18, 7:33 AM
Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

- (hífen da máscara do CEP)

\d\d\d (3 últimos números)

Porém, perceba que no exemplo, o cep do Márcio não possui


máscara, e mesmo assim iremos considerar esse caso. Como podemos
fazer isso?

No mundo da Regex, o ponto de interrogação tem vários super


poderes e veremos todos eles durante a série. Mas, um deles é o papel
de quanti�er, ou seja, ele é um atalho (short hand) que diz que um
elemento pode ou não aparecer na expressão.

Logo, para considerarmos o caso onde o hífen pode ou não vir,


mudamos a nossa expressão para:

\d\d\d\d\d-?\d\d\d

Capturando CEP com e sem hífen!

Perceba que agora ambos os casos foram considerados.

Conclusão
Como eu comentei anteriormente, esse é apenas um exemplo bem
rústico e simples do uso de expressões regulares. Elas podem �car

5 of 8 7/9/18, 7:33 AM
Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

muito mais elegante e fácil de ler e também muito mais complexas.

Caso queira testar você mesmo, pode utilizar o Regex101, um site que
possui diferentes Regex Engine e até gera o código para a linguagem,
dado o target e o pattern.

Até o próximo artigo! =D

. . .

Se você ainda não conhece o Training Center, de uma olhada nesse


artigo.

Se curtiu essa dica, da um like aqui no Medium e compartilhe esse


post nas redes sociais.

6 of 8 7/9/18, 7:33 AM
Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

7 of 8 7/9/18, 7:33 AM
Expressões Regulares: Entendendo de uma vez ... https://medium.com/trainingcenter/entendendo-...

8 of 8 7/9/18, 7:33 AM

Você também pode gostar