Testador de Regex
Teste uma expressão regular no seu próprio texto e veja cada correspondência com sua posição e seus grupos de captura. Alterne para o modo substituir para
Digite um padrão, cole o seu texto e veja cada correspondência destacada com a sua posição e os seus grupos de captura. Mude para o modo substituir para reescrever o texto com uma substituição, ou para o modo extrair para retirar um grupo de captura linha por linha - a forma mais rápida de conferir um padrão antes de colocá-lo no código.
O motor é o sabor de expressão regular do JavaScript que os navegadores usam, então o resultado é o mesmo que você teria no Node ou no console do navegador, incluindo grupos nomeados, lookahead e quantificadores preguiçosos. As flags para correspondência global, sem diferenciar maiúsculas de minúsculas, multilinha, ponto único e unicode estão disponíveis, e um padrão descontrolado é interrompido em vez de travar a aba.
Como testar uma expressão regular
Digite o padrão e defina as flags
Cole o texto onde a expressão será testada
Leia as correspondências ou use os modos substituir e extrair
Perguntas frequentes
Qual sabor de regex é usado?
JavaScript (ECMAScript), o mesmo motor do seu navegador e do Node.js. Padrões escritos para PCRE, Python ou Java podem precisar de pequenas mudanças - quantificadores possessivos e recursão não fazem parte deste sabor.
Por que meu padrão travou ou parou?
Backtracking catastrófico, normalmente causado por quantificadores aninhados como (a+)+ contra uma string longa que não corresponde. A ferramenta para depois de um número fixo de iterações para proteger a aba; simplifique o padrão ou ancore-o.
Como faço para substituir texto?
Mude para o modo substituir e informe a substituição. $1, $2 ou $<nome> inserem grupos de captura, então você pode reformatar datas, trocar campos ou limpar logs.
O que o modo extrair faz?
Ele gera um grupo de captura por linha em vez da correspondência inteira, que é exatamente o que você quer ao extrair endereços de e-mail, URLs ou IDs de um bloco de texto.
Quebras de linha funcionam no meu padrão?
Só com as flags multilinha ou ponto único. Por padrão o . não corresponde a uma quebra de linha, o que é um motivo comum para um padrão funcionar em uma linha e falhar em um parágrafo.
Meu texto é enviado para algum servidor?
Não, a correspondência roda localmente - útil quando o texto contém dados reais de log ou informações de clientes.
Visão geral
| Entrada | texto |
|---|---|
| Vários arquivos | Não |
| Onde roda | No seu navegador - os arquivos nunca são enviados |
| Funciona offline | Sim — depois que a página carrega |
| Preço | Grátis, sem cadastro, sem marca d'água |
Onde as conversões quebram em silêncio
A maioria dos bugs de conversão não é de sintaxe, e sim de significado. Uma coluna CSV de códigos postais perde os zeros à esquerda no momento em que a planilha supõe que aquilo é um número; um ID longo ultrapassa a precisão de ponto flutuante; datas mudam de sentido dependendo de o dia vir antes do mês ou o mês antes do dia. As chaves do JSON não têm ordem, mas os arrays têm, e uma ferramenta que ordena chaves não muda nada, enquanto uma que ordena arrays altera os dados. O Unicode é outra armadilha: o texto pode chegar como UTF-8, UTF-16 ou com um BOM, e um decodificador que erra o palpite transforma caracteres acentuados em mojibake. Antes de confiar em qualquer conversão, confira por amostragem a primeira e a última linha, qualquer campo com zeros à esquerda e qualquer campo que contenha aspas, vírgulas ou quebras de linha.
Como escolher um formato de dados
O JSON é o padrão para tudo que uma API retorna ou um programa lê: ele lida naturalmente com estruturas aninhadas, números, booleanos e null, e toda linguagem o interpreta. O CSV é menor e abre direto em uma planilha, mas não tem como expressar aninhamento nem um padrão comum para o delimitador, as aspas ou o conjunto de caracteres - e é exatamente aí que as conversões dão errado. O XML é verboso, mas carrega atributos, conteúdo misto e esquemas, por isso ainda domina formatos de documento e integrações legadas. O YAML é o mais legível para configuração, mas é sensível a espaços em branco e tem conversões de tipo surpreendentes ("no" virando false, uma versão como 1.10 virando 1.1). Escolha o formato que a ferramenta que vai consumir os dados prefere, e não o que parece mais bonito.