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.
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.
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!