Como usar
- Digite uma expressão regular no campo Padrão, sem as barras ao redor.
- Marque as flags necessárias. g (global) encontra todas as correspondências, em vez de apenas a primeira.
- Cole o texto a ser pesquisado. As correspondências são destacadas e listadas com seus índices e grupos de captura.
- Se quiser, digite uma substituição, como $2-$1, para visualizar o resultado de String.replace.
Como funciona
O testador executa seu padrão com o objeto RegExp integrado do navegador. Portanto, os resultados são exatamente os que o código JavaScript (ECMAScript) produziria nesse navegador. Outras linguagens usam diferentes variantes de regex: PCRE (PHP), o módulo re do Python, Java e .NET oferecem recursos que o JavaScript não tem, como quantificadores possessivos (a++), grupos atômicos ((?>…)), modificadores inline como (?i) e recursão. Também há diferenças em detalhes, como as âncoras \A e \Z. Teste o padrão na linguagem em que pretende usá-lo. Lookbehind ((?<=…)), grupos nomeados ((?<name>…)) e escapes de propriedade Unicode (\p{L} com a flag u) funcionam em todos os navegadores atuais.
Sem a flag g ou y, apenas a primeira correspondência é encontrada, como em RegExp.exec. Correspondências de comprimento zero, como as de ^ ou \b, são listadas, mas não destacadas; depois de uma delas, a busca avança um caractere (um ponto de código com a flag u), como em String.matchAll. Os grupos de captura são exibidos por número e, quando definidos, por nome. Um grupo que não participou da correspondência é marcado como sem valor, o que é diferente de uma correspondência vazia.
Alguns padrões, como (a+)+$ em uma linha longa sem correspondência, levam tempo exponencial para falhar (retrocesso catastrófico). Para reduzir esse risco, a busca começa um instante depois que você para de digitar, pesquisa apenas os primeiros 100.000 caracteres do texto e coleta no máximo 1.000 correspondências. Ainda assim, um padrão problemático pode deixar a aba sem responder por algum tempo. Se isso acontecer, simplifique o padrão ou encurte o texto.
Exemplos
Extrair datas
O padrão (\d{4})-(\d{2})-(\d{2}) com a flag g ativada encontra duas correspondências em “Vencimento 2026-03-15, pago em 2026-04-02”. O grupo 1 é o ano; a substituição $3.$2.$1 transforma o texto em “Vencimento 15.03.2026, pago em 02.04.2026”.
Grupos nomeados para um código mais legível
(?<key>\w+)=(?<value>[^&]*) na string de consulta a=1&b=two lista key e value para cada par, correspondendo ao que match.groups.key e match.groups.value retornam em JavaScript.
Busca sem diferenciar maiúsculas de minúsculas em várias linhas
^error:.* com as flags g, i e m encontra todas as linhas de um registro que começam com Error:, ERROR: ou error:, pois m faz ^ corresponder ao início de cada linha.
Perguntas frequentes
Minha regex vai funcionar da mesma forma em Python, PHP ou Java?
Não necessariamente. Esta ferramenta usa o mecanismo do JavaScript. A sintaxe básica é compartilhada, mas recursos como quantificadores possessivos, grupos atômicos, flags inline como (?i) e algumas sequências de escape existem apenas em outras variantes; alguns também se comportam de maneira diferente. Sempre teste na linguagem de destino.
Por que só uma correspondência foi encontrada?
A flag g (global) está desativada. Sem ela, o JavaScript retorna apenas a primeira correspondência. Marque g para encontrar todas.
Devo digitar as barras ao redor do padrão?
Não. Digite apenas o padrão, por exemplo, \d+ em vez de /\d+/g, e escolha as flags pelas caixas de seleção. A forma de literal do JavaScript é exibida abaixo dos resultados para você copiar para o código.
Por que a página ficou lenta com meu padrão?
Quantificadores aninhados, como (a+)+ ou (.*)*, podem fazer o mecanismo testar um número exponencial de caminhos quando não há correspondência. Torne o padrão mais específico, por exemplo, substituindo .* por [^,]*, ou use âncoras. O testador limita o texto a 100.000 caracteres para reduzir o impacto.
Privacidade
Seu padrão e texto são processados apenas no navegador, pelo mecanismo JavaScript. Nada é enviado, armazenado ou incluído em análises.