Expressões Regulares: guia completo para desenvolvedores
Do básico ao avançado: aprenda a criar e testar expressões regulares com exemplos práticos do dia a dia.
Expressões regulares (ou Regex) são como uma linguagem dentro de outra linguagem. Elas permitem descrever padrões de busca em textos de forma extremamente precisa. Para o desenvolvedor, dominar Regex é como ganhar um superpoder: tarefas que levariam dezenas de linhas de código podem ser resolvidas com uma única expressão.
Neste guia, vamos cobrir desde os conceitos mais básicos até técnicas avançadas, com exemplos práticos que você pode testar imediatamente no Regex Tester do DevPocket.
O que é uma Expressão Regular?
Uma expressão regular é uma sequência de caracteres que define um padrão de busca. Por exemplo, o padrão \d{5}-\d{3} descreve um CEP brasileiro: cinco dígitos, um hífen e mais três dígitos. Em vez de escrever uma função para verificar caractere por caractere, você aplica a regex e obtém o resultado instantaneamente.
Toda expressão regular é composta por dois tipos de elementos: caracteres literais (que correspondem a si mesmos, como letras e números) e meta-caracteres (que têm significado especial, como \d, . ou *).
Principais Meta-caracteres
Âncoras
Âncoras não correspondem a caracteres, mas a posições na string:
^— início da linha. Ex:^Olácasa "Olá" apenas no começo.$— final da linha. Ex:mundo$casa "mundo" apenas no final.\b— borda de palavra. Ex:\bjava\bcasa "java" mas não "javascript".
Quantificadores
Quantificadores definem quantas vezes um caractere ou grupo deve aparecer:
*— zero ou mais vezes. Ex:ab*ccasa "ac", "abc", "abbc"...+— uma ou mais vezes. Ex:ab+ccasa "abc", "abbc"... mas não "ac".?— zero ou uma vez. Ex:colou?rcasa "color" e "colour".{n,m}— de n a m vezes. Ex:\d{2,4}casa números de 2 a 4 dígitos.
Classes de Caracteres
\d— qualquer dígito (0-9).\w— qualquer caractere alfanumérico (letras, dígitos, underscore).\s— qualquer espaço em branco (espaço, tab, quebra de linha)..— qualquer caractere (exceto quebra de linha).[abc]— conjunto: casa "a", "b" ou "c".[^abc]— negação: casa qualquer caractere exceto "a", "b" ou "c".
Grupos e Captura
Parênteses ( ) têm dois propósitos em regex: agrupar partes da expressão e capturar o trecho correspondente para uso posterior:
// Extrair código de área e telefone
\((\d{2})\)\s(\d{4,5}-\d{4})
// Entrada: (11) 91234-5678
// Grupo 1: 11
// Grupo 2: 91234-5678
Flags (Modificadores)
Flags alteram o comportamento da busca. As mais comuns são:
g(global) — encontra todas as ocorrências, não apenas a primeira.i(case-insensitive) — ignora diferenças entre maiúsculas e minúsculas.m(multiline) — faz^e$considerarem cada linha.s(dotall) — faz o.corresponder também a quebras de linha.
Casos Práticos do Dia a Dia
Validar e-mail:
^[\w.-]+@[\w.-]+\.\w{2,}$
Validar telefone celular BR:
^\(?\d{2}\)?\s?\d{4,5}-?\d{4}$
Extrair hashtags de um texto:
#\w+
Validar senha forte (8+ caracteres, maiúscula, minúscula, número e especial):
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
Teste suas Expressões em Tempo Real
Escrever regex de cabeça é difícil até para desenvolvedores experientes. Por isso, é essencial usar um testador de expressões regulares online que mostre os matches em tempo real enquanto você digita. O Regex Tester do DevPocket suporta todas as flags e exibe os grupos de captura destacados, facilitando a depuração.
Além do Regex Tester, você pode complementar suas validações usando o JSON Validator para garantir que suas strings de configuração estão corretas, ou o Comparador de Textos para visualizar as diferenças antes e depois de aplicar substituições em lote.
Conclusão
Expressões regulares são uma ferramenta poderosa que, uma vez dominada, se torna indispensável no arsenal de qualquer desenvolvedor. Comece com padrões simples, teste cada alteração no seu Regex Tester favorito e, aos poucos, vá incorporando conceitos mais avançados como lookaheads e backreferences.
O segredo é praticar: quanto mais você usa regex, mais natural fica. Mantenha o DevPocket sempre aberto em uma aba e teste suas expressões antes de colocá-las em produção.