Este testador executa expressões regulares JavaScript no seu texto e mostra cada correspondência, sua posição e seus grupos de captura. Os padrões são avaliados localmente, então nada é enviado nem registrado.
Seus dados são processados localmente no seu navegador e não são enviados ao nosso servidor.
Padrão inválido:
Correspondências (2)
Contact ada@example.com or grace@example.org for details.
Nenhuma correspondência neste texto.
#1ada@example.composição 8
#2grace@example.orgposição 27
Como usar esta ferramenta
1 Digite uma expressão regular e marque as flags de que você precisa.
2 Cole o texto a pesquisar; as correspondências são destacadas e listadas enquanto você digita.
3 Escolha um dos exemplos comuns para partir de um padrão que já funciona.
4 Copie os valores encontrados ou limpe o formulário.
Fórmula e lógica de cálculo
Correspondências
new RegExp(pattern, flags).exec(text)
O padrão é compilado pelo motor JavaScript do navegador. Sem a flag g, só a primeira correspondência é retornada; com g, o testador continua procurando até o fim do texto.
Flags
g global · i ignorar maiúsculas · m multilinha · s dotAll · u unicode · y sticky
As flags mudam a forma como o motor interpreta o padrão. O testador as repassa ao construtor RegExp e mostra erros de sintaxe com a mensagem do próprio motor.
Exemplo resolvido
Encontrar endereços de e-mail
Uma mensagem de suporte contém dois endereços de e-mail.
Padrão: \b[\w.+-]+@[\w-]+\.[\w.]+\b
Flag: g
Resultado: ada@example.com e grace@example.org
Cada correspondência aparece com seu índice inicial; os grupos de captura são exibidos quando o padrão tem parênteses.
Capturar uma data
Extrair ano, mês e dia de datas ISO.
Padrão: (\d{4})-(\d{2})-(\d{2})
Flag: g
Grupos: ano, mês e dia em cada correspondência
As partes entre parênteses são retornadas como grupos de captura na ordem em que aparecem no padrão.
Casos extremos e precisão
Backtracking catastrófico
Quantificadores aninhados como (a+)+ podem obrigar o motor a um trabalho exponencial em algumas entradas. Se a página travar, simplifique o padrão; o testador não consegue interromper uma expressão em execução.
Correspondências de comprimento zero
Padrões como ^ ou \b podem corresponder a uma string vazia. Depois de uma correspondência vazia, o testador avança a posição de busca para não entrar em loop infinito.
Somente sintaxe JavaScript
O testador usa a sintaxe RegExp do JavaScript, não a de PCRE ou de Python. Lookbehind e grupos nomeados só funcionam nos motores que os implementam.
Perguntas frequentes
Por que só aparece uma correspondência?+−
A flag g (global) é necessária para encontrar todas as correspondências. Sem ela, o testador para no primeiro resultado.
O que são grupos de captura?+−
Cada parte do padrão entre parênteses captura texto. Os grupos são numerados da esquerda para a direita e aparecem ao lado da correspondência; um grupo opcional sem correspondência é exibido como ∅.
Meu padrão e meu texto são enviados para algum servidor?+−
Não. A busca roda no seu navegador com o motor RegExp nativo; nada é enviado a um servidor.
Por que minha expressão regular está lenta?+−
Quantificadores aninhados e alternâncias ambíguas causam backtracking catastrófico. Reescreva o padrão para ser mais específico ou ancore-o para reduzir o espaço de busca.
A ferramenta aceita grupos nomeados?+−
O motor repassa a sintaxe moderna do JavaScript, então grupos nomeados funcionam quando o navegador os implementa. A lista de resultados mostra os grupos numerados.
Ferramentas de desenvolvimento relacionadas
Formate, codifique ou gere hash do texto que você está pesquisando.