Programadores
Testador de regex
As suas expressões regulares testadas em direto — correspondências realçadas, grupos detalhados.
| # | Correspondências | Grupos de captura |
|---|
Escrever uma expressão regular à primeira, sem a testar, é uma aposta. Este testador dá-lhe retorno imediato: introduza o padrão, as flags e um texto de amostra — cada correspondência é realçada enquanto escreve, e os grupos capturados são listados um a um com o respetivo conteúdo. Um parêntesis por fechar ou um quantificador inválido? O erro de sintaxe aparece com clareza em vez de falhar em silêncio. O motor é o do seu próprio navegador, ou seja, a sintaxe JavaScript padrão: o que validar aqui funcionará tal e qual no seu código front-end ou Node.js. Grátis, sem registo, e os seus dados de teste nunca saem da sua máquina — cole amostras reais com confiança.
Como funciona?
- Introduza o padrão da expressão regular e as suas flags (g, i, m…).
- Cole uma amostra representativa na área de texto de teste.
- Veja as correspondências acenderem-se e os grupos de captura serem listados.
- Afine o padrão até funcionar e copie-o para o seu código.
Perguntas frequentes
Porque é que a minha regex não encontra nada?
Verifique primeiro os clássicos: um caráter especial não escapado (o ponto corresponde a tudo, «\.» corresponde a um ponto literal), uma flag em falta (sem «i», as maiúsculas contam; sem «m», ^ e $ só valem para o texto inteiro), ou um padrão demasiado guloso — «.*» engole muitas vezes mais do que o previsto; prefira «.*?» ou uma classe de carateres negada.
Para que servem as flags g, i e m?
«g» (global) encontra todas as correspondências em vez de parar na primeira; «i» ignora maiúsculas e minúsculas; «m» (multiline) faz com que ^ e $ correspondam ao início e ao fim de cada linha, e não do texto inteiro. Há outras: «s» permite que o ponto corresponda a quebras de linha, «u» ativa o tratamento Unicode completo.
Como extrair uma parte específica da correspondência?
Com grupos de captura: envolva a parte pretendida em parêntesis e ela aparece aqui na lista de grupos. Os grupos nomeados «(?<nome>…)» tornam o código mais legível; os grupos não capturantes «(?:…)» permitem agrupar sem capturar, mantendo o resultado limpo.
A minha regex também funcionará em PHP ou Python?
O essencial da sintaxe é comum, mas cada motor tem as suas variantes: o suporte de lookbehind e as classes Unicode diferem, o PHP (PCRE) exige delimitadores, o Python usa re.MULTILINE em vez de flags inline. Este testador valida a sintaxe JavaScript — volte a testar na linguagem de destino se depender de funcionalidades avançadas.