1. O Que Sao Expressoes Regulares
Expressoes regulares (regex ou regexp) sao sequencias de caracteres que definem um padrao de busca. Elas sao usadas em quase todas as linguagens de programacao para buscar, validar, extrair e transformar texto de forma poderosa e concisa.
Uma regex como \d{3}\.\d{3}\.\d{3}-\d{2} descreve exatamente o formato de um CPF, permitindo validar qualquer string com uma unica expressao. Isso torna regex uma habilidade fundamental para desenvolvedores, analistas de dados e qualquer profissional que lide com texto programaticamente.
2. Sintaxe Basica e Metacaracteres
Os metacaracteres sao os blocos fundamentais de qualquer regex. Os mais importantes incluem:
- . (ponto): corresponde a qualquer caractere exceto nova linha.
- \d: corresponde a qualquer digito de 0 a 9.
- \w: corresponde a letras, digitos e underscore.
- \s: corresponde a espacos em branco, tabs e novas linhas.
- ^ e $: representam inicio e fim da string (ou linha com flag m).
- *, +, ?: quantificadores para zero-ou-mais, um-ou-mais e zero-ou-um.
- {n,m}: quantificador para repetir entre n e m vezes.
3. Flags e Modificadores
As flags modificam o comportamento da regex:
- g (global): encontra todos os matches, nao apenas o primeiro.
- i (case insensitive): ignora diferenca entre maiusculas e minusculas.
- m (multiline): faz ^ e $ corresponderem ao inicio e fim de cada linha.
Nossa ferramenta permite ativar e desativar cada flag individualmente, com resultado atualizado em tempo real para facilitar o aprendizado e a depuracao.
4. Grupos de Captura
Grupos de captura sao definidos por parenteses (padrao) e permitem extrair partes especificas do texto que correspondem ao padrao. Por exemplo, na regex (\d{4})-(\d{2})-(\d{2}), cada par de parenteses captura ano, mes e dia separadamente.
Use (?:padrao) para grupos sem captura quando voce precisa agrupar logicamente mas nao precisa extrair o valor.
"A ferramenta exibe cada grupo de captura individualmente para cada match, facilitando a depuracao de expressoes complexas."
5. Casos de Uso Praticos
Regex sao amplamente usadas em:
- Validacao de formularios: emails, CPFs, telefones, CEPs.
- Parsing de logs: extrair timestamps, IPs e mensagens de arquivos de log.
- Busca e substituicao: operacoes de refactoring em editores de codigo.
- Higienizacao de dados: remover caracteres invalidos ou normalizar formatos.
- Web scraping: extrair padroes especificos de HTML ou texto.
6. Perguntas Frequentes
Por que minha regex funciona no tester mas nao no meu codigo?
A sintaxe de escape varia entre contextos. Em strings JavaScript, voce precisa escapar as barras invertidas (use \\d em vez de \d dentro de strings, ou use literais regex /\d/).
O que e backtracking e por que importa?
Backtracking ocorre quando a engine de regex tenta diferentes combinacoes de matches. Expressoes mal escritas podem causar backtracking catastrofico, deixando o processamento extremamente lento em textos grandes. Prefira quantificadores posessivos ou lookaheads para evitar esse problema.
A ferramenta suporta lookahead e lookbehind?
Sim. O testador usa a engine de regex nativa do JavaScript, que suporta lookahead positivo (?=...), lookahead negativo (?!...) e lookbehind (em navegadores modernos).