Esses dias eu tava no trabalho com uma tarefa que parecia simples: pegar uma exportação enorme — um .txt de log com umas centenas de milhares de linhas — e tirar dali todos os e-mails que apareciam no meio da bagunça. Sem padrão fixo, sem coluna bonitinha de planilha. E-mail solto no meio de carimbos de data, IDs, mensagens de erro, JSON quebrado, tudo junto.
Comecei do jeito que talvez você começaria: na unha. Ctrl+F, “@”, copia, cola numa outra aba, repete. Depois de uns vinte minutos eu já tinha ódio da minha própria vida e umas trinta linhas extraídas de um arquivo que tinha milhares. Foi aí que um colega olhou de canto e falou: “por que você não joga uma regex nisso?”.
Eu, que sempre torci o nariz pra regex — aquele monte de \d+([a-z]?)* que parece um gato andando no teclado —, engoli o orgulho e tentei. Colei uma linha. Quatro mil e poucos e-mails destacados na hora. O que eu ia levar a tarde inteira pra fazer saiu em literalmente segundos. Daquele dia em diante minha relação com regex mudou. Deixa eu te contar por quê — e no fim tem um playground pra você sentir isso na pele.
O que é regex, sem mistério
“Regex” é a abreviação de expressão regular: uma mini-linguagem só pra descrever padrões de texto. Em vez de procurar uma palavra exata, você descreve a forma do que quer encontrar. “Alguma coisa, arroba, alguma coisa, ponto, duas ou três letras” vira um e-mail. “Cinco dígitos, traço, três dígitos” vira um CEP.
A grande sacada é essa mudança de cabeça: você para de pensar “qual texto eu procuro” e passa a pensar “qual regra esse texto obedece”. Parece feitiço quando você lê de fora, mas por dentro é pura lógica — combinável, previsível, do tipo que o computador adora.
O alfabeto secreto (que cabe num guardanapo)
O que assusta na regex é a aparência, não a quantidade de coisa pra aprender. O essencial cabe em três grupinhos:
- Classes — que tipo de caractere.
\dé um dígito,\wé letra/número/underline,\sé espaço, e.é “qualquer coisa”. Entre colchetes você monta a sua:[aeiou]casa qualquer vogal. - Quantificadores — quantas vezes.
+é “uma ou mais”,*é “zero ou mais”,?é “opcional”, e{2,3}é “de duas a três vezes”. - Âncoras e grupos — onde e o quê.
^é o começo da linha,$é o fim, e os parênteses( )criam um grupo de captura — um pedacinho que você quer guardar separado.
Junta tudo e o tal e-mail vira algo como [\w.+-]+@[\w-]+\.[\w.-]+: “um ou mais caracteres de nome, arroba, o domínio, ponto, e o resto do domínio”. Lê em voz alta que faz sentido.
Duas curiosidades que me fizeram respeitar a regex
1. Ela é mais velha que quase tudo. A teoria por trás vem dos anos 1950, do matemático Stephen Kleene (aquele * chama-se “estrela de Kleene” em homenagem a ele). Quando o editor de texto QED e depois o ed do Unix popularizaram a ideia nos anos 60 e 70, regex já era um padrão maduro. Você está usando matemática de setenta anos atrás toda vez que filtra um log.
2. Ela tem um lado perigoso. Existe um ataque real chamado ReDoS (regex denial of service): certas expressões mal escritas, diante de uma entrada maliciosa, explodem em tempo de processamento e travam o servidor. O clássico é algo como (a+)+$. É um lembrete bonito de que “simples” não é o mesmo que “inofensivo” — e de que entender a ferramenta importa.
Minha opinião honesta, depois de anos usando
Regex não é pra tudo. Pra validar um e-mail de verdade, com todas as regras do mundo real, regex é uma furada — você acaba com um monstro ilegível que ainda erra casos. Pra fazer parsing de HTML então, nem pensar. Mas pra encontrar, extrair e transformar texto rapidinho — num log, num editor, num pipeline de dados — ela é insubstituível. É a diferença entre passar a tarde no Ctrl+F e resolver em uma linha.
O segredo que ninguém conta: você não precisa decorar regex. Precisa entender os três grupinhos lá de cima e ter um lugar pra testar ao vivo, vendo os matches acenderem enquanto você digita. O custo de errar cai pra zero, e aí você aprende de verdade. É exatamente isso que eu montei pra você.
Bora brincar 👇
Aqui embaixo tem um playground de regex que roda 100% no seu navegador, sem mandar nada pra servidor nenhum. Digite um padrão, escolha as flags, cole um texto e veja os trechos casados acenderem em tempo real. Tem presets com cara de Brasil — e-mail, CEP, telefone, CPF, data e URL — e um mini guia de bolso do lado. Erra à vontade: regex inválida só mostra um aviso amigável, nada quebra.