Testador de regex
Regex Tester
Testa uma expressão regular contra um texto de exemplo com destaque ao vivo das ocorrências e lista dos grupos de captura.
Executa uma expressão regular contra um texto de exemplo e mostra cada correspondência com seus offsets, seus grupos de captura e a substituição que produziria. É o motor do próprio navegador, então o que acontece aqui é o que vai acontecer no seu JavaScript.
Padrão
pode casar em qualquer ponto da string, 2 grupos de captura.
Testar contra
Todas as ocorrências são listadas. Sem a flag `g`, o `String.replace` usa só a primeira.
0 ocorrências
Tempo
0,0 ms
ask@example.com, 문의@example.co.kr and no-reply+tag@mail.example.orgSubstituir
`$1`, `$<name>`, `$&`, `` $` ``, `$'` e `$$` expandem todos, exatamente como o `String.replace` os expande.
Como usar
Escreva o padrão e defina as flags
Os botões de flag são as seis que importam: global, ignorar maiúsculas, multilinha, dotAll, unicode e sticky. O literal no topo é o que você colaria no código.
Cole um texto que você de fato tem
As correspondências são destacadas no lugar, alternando a cor para que as adjacentes se distingam, e listadas em uma tabela com o valor de cada grupo — incluindo os grupos que não participaram.
Experimente a substituição
`$1`, `$<name>`, `$&`, `` $` ``, `$'` e `$$` se expandem exatamente como `String.replace` os expande, então a pré-visualização é a saída real.
Perguntas frequentes
Por que a página avisa que falta a flag `g`?
Porque a lista mostra todas as correspondências, mas sem `g` o seu código não vai mostrar. `String.replace` muda só a primeira, e `matchAll` lança um erro de cara. É a diferença entre o que você vê aqui e o que o seu programa faz.
É o mesmo motor do Python ou do PCRE?
Não: é o do JavaScript. Lookbehind, grupos nomeados e `\p{…}` são suportados aqui, mas grupos atômicos, quantificadores possessivos, recursão e grupos de flags inline não são, e o comportamento das classes de caracteres difere em alguns pontos. Um padrão que funciona aqui ainda pode falhar em outro lugar.
Meu padrão trava a página.
Não deveria: a correspondência roda em um worker precisamente porque um padrão com backtracking catastrófico não pode ser interrompido de nenhum outro jeito. Se demorar demais, a execução é encerrada e relatada, o que também é um sinal útil: um padrão que faz isso aqui vai fazer no seu servidor.
Por que `.` não casa com minha quebra de linha?
Porque é para isso que serve `s` (dotAll). Sem ela `.` casa com qualquer coisa exceto um terminador de linha — e `m` (multilinha) é outra coisa ainda: muda o que `^` e `$` significam, não o que `.` casa.
Pode receber de
Localizar e substituir
Find & Replace
Substitui texto por valor literal, palavra inteira ou expressão regular, com grupos de captura e prévia de cada ocorrência.
Extrator de padrões
Pattern Extractor
Puxa cada e-mail, URL, número, data ou ocorrência de uma regex sua de um bloco de texto para uma lista.
Explicador de regex
Regex Explainer
Decompõe uma expressão regular numa árvore rotulada para você ler o que cada parte realmente casa.
Formatador e validador de JSON
JSON Formatter & Validator
Formata, minifica e valida JSON, apontando a linha e a coluna exatas de um erro de sintaxe.
Em seguida
Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.
Interpretador de cron
Cron Parser
Explica uma expressão cron em linguagem simples e lista as próximas execuções num fuso horário escolhido.
Localizar e substituir
Find & Replace
Substitui texto por valor literal, palavra inteira ou expressão regular, com grupos de captura e prévia de cada ocorrência.
Explicador de regex
Regex Explainer
Decompõe uma expressão regular numa árvore rotulada para você ler o que cada parte realmente casa.
Extrator de padrões
Pattern Extractor
Puxa cada e-mail, URL, número, data ou ocorrência de uma regex sua de um bloco de texto para uma lista.
JSON ⇄ CSV conversor
JSON ⇄ CSV
Achata JSON aninhado em colunas ou reconstrói objetos a partir de uma tabela, com uma regra de nome de coluna por caminho com pontos.
Comparar JSON
JSON Diff
Compara dois documentos JSON estruturalmente, ignorando a ordem das chaves e informando os caminhos adicionados, removidos e alterados.