Introdução

Seja muito bem vindo a essa documentação não oficial de expressões regulares! Aqui você vai aprender tudo o que precisa para dominar a Regex 🎉

Então, para dar inicio a nossa jornada, vamos começar respondendo o que são expressões regulares!

O que é uma expressão regular?

Expressões regulares são uma composição de símbolos e/ou caracteres especiais e/ou literais, que juntos formam uma sequência, um padrão de texto.

Elas compostas em duas partes, a primeira é onde escrevemos o nosso padrão, e a segunda parte é onde podemos colocar algumas flags.

Para os exemplos, iremos utilizar a linguagem do Javascript. Vale lembrar também que os conceitos aprendidos aqui sobre regex independem do tipo de linguagem que você estiver trabalhando.

Quando vamos criar uma regex, podemos fazer de duas formas, usando o construtor RegExp ou usando uma short syntax,.


// Utilizando o construtor

const regex = new RegExp('padrão', 'flags');

// Utilizando a short syntax

const regexp = /padrão/; // sem flags
const regexp = /padrão/gmi; // com as flags g, m e i

Para que serve?

Agora que já entendemos o que é uma expressão regular, vamos falar um pouco onde e como podemos utilizar.

Expressões regulares podem ser utilizadas em uma infinidade de tarefas onde se envolve a busca, manipulação, e/ou validação de textos, como:

  • Validação de RG, CPF, número de cartão, email, etc;
  • Pegar as iniciais do nome do usuário;
  • Manipulação e formatação de datas;
  • Fazer uma busca/contagem por certa palavra em um texto;

Exemplo prático

#1

Vamos supor que estamos trabalhando em uma distribuidora, e diariamente, o sistema cria um arquivo com todas as encomendas que saíram no dia, contento o horário e o nome do produto.

Algo como:


Saída 08:23 / Teclado Bacana;
Saída 09:17 / Bolsa Legal;
Saída 11:32 / Teclado com luizinha;
Saída 13:02 / Headphone maneiro;
Saída 14:11 / Monitor ultra dos uaide;
Saída 16:37 / Um outro teclado não tão legal;
Saída 18:57 / Cabos usb;
Saída 19:12 / Mouse;

Com esse arquivo em mãos, é nos dada a missão de calcular quantas entregas foram feitas entre o meio dia e as sete horas da noite.

Como você faria esse calculo?

Temos varias opções, podemos fazer isso manualmente, podemos fazer um split e ir comparando os caracteres ou, podemos fazer essa contagem utilizando regex, utilizando a expressão 1[2-8]:

Veja como ficaria:


// Após ter feito a leitura do conteúdo do arquivo

const regex = /1[2-8]:/gm
const matches = arquivo.match(regex).length

console.log(matches) // 4

#2

Agora vamos supor que estamos fazendo um chat para um jogo online, e queremos ocultar certas palavras.

Como você faria?

Utilizando regex, fica super simples!


const forbiddenWords = ['beleza', 'maneiro'].join('|')
const message = 'Isso esta uma beleza, jogo maneiro'

const regex = new RegExp(forbiddenWords, 'g')
const result = message.replace(regex, '****')

console.log(result) // Isso esta uma ****, jogo ****

Ferramentas online

Algumas ferramentas online para você poder fazer os seus estudos, testes, etc, ou se preferir, pode usar também a sua IDE de preferência!