Regex Tester
Test regular expressions
Test regular expressions Executa localmente no seu navegador
About the
O Regex Tester executa uma expressão regular JavaScript em seu próprio texto de amostra e destaca cada correspondência conforme você digita, para que você possa observar um padrão ser bem-sucedido ou falhar, em vez de adivinhar. Ao lado dos destaques ele lista cada correspondência com sua posição inicial e seus grupos de captura, que é a parte que realmente informa se o grupo 2 é o valor que você queria ou uma string vazia. Três erros causam a maioria das regexes quebradas, e todos os três são visíveis aqui: um quantificador ganancioso engolindo silenciosamente mais texto do que o pretendido, um ponto sem escape que corresponde a qualquer coisa e um sinalizador global ausente que interrompe a pesquisa após o primeiro acerto.
Where people use the
- Depurando um padrão de análise de log em um punhado de linhas de log reais.
- Elabore uma regra de telefone ou código postal antes de conectá-la a um formulário.
- Extrair números de pedidos ou IDs de um bloco de texto colado.
- Aprender como os quantificadores se comportam alterando um caractere e observando o movimento dos destaques.
How to use the
- 1
Cole o texto que deseja testar
Use uma amostra real em vez de uma inventada. Os casos extremos em seus dados reais são os que quebram o padrão, portanto, inclua uma linha que também não deve corresponder.
- 2
Escreva o padrão
Insira a expressão sem as barras ao redor, por exemplo [a-z]+ em vez de /[a-z]+/. Os sinalizadores são alternadores separados.
- 3
Ativar ou desativar sinalizadores
g encontra todas as correspondências em vez de parar na primeira, i ignora maiúsculas e minúsculas, m faz as âncoras funcionarem por linha, s permite que um ponto espalhe novas linhas, u ativa o modo Unicode completo e y ancora correspondências para lastIndex.
- 4
Leia a tabela de jogos
Cada resultado mostra o texto correspondente, seu deslocamento de caracteres e cada grupo de captura. Um grupo vazio inesperado geralmente significa que um quantificador opcional não corresponde a nada.
- 5
Copie o padrão finalizado
Quando os destaques parecerem corretos, copie a expressão e cole-a em seu código, lembrando-se de carregar os sinalizadores também.
Dicas e práticas recomendadas
- Teste uma regra por padrão. Uma regex que executa três tarefas é ilegível e impossível de depurar.
- Inclua uma linha que não deve corresponder e confirme que ela permanece sem destaque.
- Prefira grupos nomeados como ano, mês, dia aos numerados, para que o padrão ainda signifique algo quando você retornar a ele no próximo mês.
Perguntas frequentes
Qual sabor de regex isso usa?
JavaScript, através do mecanismo RegExp do próprio navegador. A sintaxe é próxima do PCRE e do módulo re do Python, mas não idêntica. Grupos nomeados, lookahead, lookbehind e propriedades Unicode escapam, todos funcionam nos navegadores atuais.
Por que meu padrão corresponde a muito mais texto do que eu esperava?
Porque os quantificadores são gananciosos por padrão. Algo como .* ou [0-9]+ consumirá o máximo que puder enquanto ainda permite que o restante do padrão corresponda. Adicione um ponto de interrogação para torná-lo preguiçoso, então .*? ou [0-9]+? pára na primeira oportunidade.
Por que só obtenho um resultado?
A bandeira global está desligada. Sem g, o motor retorna a primeira partida e para. Alterne g para coletar todas as correspondências na entrada.
Por que minha âncora não funciona na segunda linha?
Por padrão, as âncoras de circunflexo e dólar referem-se ao início e ao fim de toda a string, não a cada linha. Habilite o sinalizador m para torná-los conscientes da linha.
Meus dados de teste são enviados para algum lugar?
Não. A correspondência acontece no seu navegador com o objeto RegExp integrado. Nada é carregado, e é por isso que você pode colar linhas de log reais ou fragmentos de configuração com segurança.
Posso usar isso para validar a entrada em um formulário?
Você pode desenvolver o padrão aqui, mas sempre validar novamente no servidor. A regex do lado do cliente é uma conveniência para o usuário, nunca um controle de segurança, porque pode ser totalmente ignorada.