Testador de Regex - Teste uma Expressão Regular ao Vivo
Testador de expressões regulares
Sinalizadores
Use $1, $2 para os grupos e $& para a correspondência inteira.
| # | Posição | Correspondência | Grupos |
|---|
Este testador usa o motor JavaScript do seu navegador, então o dialeto é ECMAScript. Padrões escritos para PCRE, Python ou .NET podem se comportar de forma diferente, principalmente em lookbehind, grupos atômicos, quantificadores possessivos e escapes de propriedades unicode.
O que este testador de regex faz
Uma expressão regular é fácil de escrever e difícil de garantir. Esta página mostra o que o seu padrão realmente encontrou no seu texto, quais grupos ele capturou e o que a substituição produziria, antes que esse padrão chegue perto de dados de produção.
Como usar
- 1 Digite o padrão entre as barras e marque os sinalizadores necessários.
- 2 Cole abaixo um texto real, quanto mais bagunçado melhor, e clique em Executar.
- 3 Leia a visão destacada para uma conferência rápida, a tabela para os grupos capturados, e adicione uma substituição para pré-visualizar a reescrita.
Por que o padrão roda em um worker separado
Alguns padrões explodem. Um quantificador aninhado como (a+)+$ pode obrigar o motor a tentar um número astronômico de caminhos numa string que quase casa, e uma expressão regular já em execução não pode ser interrompida pela página que a iniciou. Rodar num worker permite encerrá-la após dois segundos, então um padrão ruim custa uma mensagem e não uma aba travada.
Referência rápida
| \d | um dígito |
| \w | uma letra, dígito ou sublinhado |
| \s | qualquer espaço em branco |
| . | qualquer caractere exceto quebra de linha |
| ^ $ | início e fim do texto |
| * + ? | zero ou mais, um ou mais, zero ou um |
| {2,5} | entre duas e cinco vezes |
| (...) | um grupo de captura, lido como $1 |
| (?<ad>…) | grupo nomeado, mais legível em padrões longos |
| [a-z] | qualquer caractere do conjunto |
| a|b | ou o lado esquerdo ou o direito |
| \b | uma fronteira de palavra, não consome caractere |
O dialeto importa
Um padrão que funciona aqui pode falhar no seu código de servidor e vice-versa. JavaScript, PCRE, Python e .NET diferem no que suportam e às vezes no que a mesma sintaxe significa. Teste no dialeto em que vai publicar, e trate esta página como o lugar certo para tudo que vai rodar no navegador.
É nos grupos que a maioria dos erros se esconde
A correspondência costuma estar certa enquanto as capturas estão erradas: um grupo é opcional e volta indefinido, ou dois grupos trocam porque um parêntese se moveu. A tabela mostra cada grupo de cada correspondência lado a lado, o jeito mais rápido de ver que $2 não é o que você supunha.
Nada do que você digita é enviado a lugar nenhum
Texto de teste raramente é inventado. As pessoas colam linhas de log, cadastros de clientes e referências de pagamento para ver se o padrão pega. Tanto o padrão quanto o texto ficam na página, então testar com dados reais não significa entregar esses dados a ninguém.