Testador de Regex

Teste expressões regulares do JavaScript em textos de exemplo diretamente no seu navegador.

Padrão
Flags
Texto de teste
Correspondências destacadas
Insira um padrão para testá-lo.

O seu padrão e texto são testados diretamente no seu navegador. Nada é enviado para o BroBroGo.

Perguntas Frequentes

É seguro colar o meu texto aqui?

Sim. A validação ocorre inteiramente no seu navegador — nada é enviado para o BroBroGo.

O que significam as flags g/i/m/s?

g localiza todas as correspondências em vez de parar na primeira. i ignora maiúsculas/minúsculas. m faz com que ^ e $ correspondam ao início e fim de cada linha, em vez de apenas a string inteira. s permite que o caractere ponto (.) também corresponda a quebras de linha.

Porque é que recebi um aviso de que o meu padrão está a demorar muito?

Alguns padrões causam retrocesso catastrófico (catastrophic backtracking) — o mecanismo tenta um número exponencial de combinações antes de desistir, o que pode travar o separador do navegador. Esta ferramenta cancela a execução após 2 segundos se isso acontecer, evitando o travamento da página. Tente simplificar repetições aninhadas como (a+)+.

O Testador de Regex é uma ferramenta concebida para validar e depurar expressões regulares do JavaScript diretamente no seu navegador web. Ao introduzir um padrão e um texto de teste, a ferramenta analisa e destaca instantaneamente todas as correspondências e grupos de captura detetados, permitindo compreender o comportamento exato da expressão regular perante diferentes entradas de dados.

Funcionamento e Interface do Testador de Regex

O funcionamento do utilitário baseia-se em três campos de entrada principais e numa área de resultados atualizada em tempo real:

  • Padrão: O campo onde insere a expressão regular que deseja testar. O exemplo predefinido de marcador de posição é \d+.
  • Flags: Seletores que modificam o comportamento da pesquisa do motor de expressões regulares do JavaScript.
  • Texto de teste: A área de texto onde introduz o conteúdo a ser analisado pelo padrão. O marcador de posição predefinido exibe a mensagem "Cole ou digite o texto para testar o seu padrão".

Após o processamento local, a ferramenta gera as seguintes saídas:

  • Correspondências destacadas: O texto de teste original com marcações visuais sobre cada correspondência encontrada.
  • Correspondências: Uma listagem detalhada de cada resultado individual. Se existirem grupos de captura definidos no padrão, cada item detalha o respetivo "Grupo {n}".
  • Estatísticas: A interface apresenta a contagem total através de "Correspondências: {count}" e o comprimento do texto em "Caracteres".

Se o utilizador pretender reiniciar o teste, pode clicar no botão "Limpar", o que remove todos os dados e exibe a mensagem "Limpo.".

O Papel e Impacto das Flags (g, i, m, s)

As flags alteram as regras de correspondência do motor de JavaScript. A ferramenta disponibiliza quatro flags fundamentais:

  1. g (Global): Ativa a pesquisa global. Sem esta flag selecionada, apenas a primeira correspondência encontrada no texto é retornada. Quando ativada, o motor procura todas as ocorrências possíveis ao longo de todo o documento.
  2. i (Insensível a maiúsculas/minúsculas): Ignora a diferença entre caracteres maiúsculos e minúsculos, permitindo que padrões como [a-z] correspondam também a letras maiúsculas.
  3. m (Multilinha): Altera o comportamento dos metacaracteres de ancoragem ^ (início) e $ (fim). Em vez de corresponderem apenas ao início e ao fim de toda a string de teste, passam a corresponder ao início e ao fim de cada linha individual dentro do texto.
  4. s (Ponto corresponde a quebra de linha): Permite que o metacaractere ponto (.) corresponda também a caracteres de quebra de linha, expandindo a pesquisa através de múltiplas linhas de texto.

Regras de Processamento e Limites de Exibição

Para garantir a estabilidade do navegador e a clareza visual, o Testador de Regex aplica regras estritas de validação e limites de processamento:

  • Erros de Sintaxe: Se a expressão regular introduzida contiver erros de construção, a ferramenta interrompe a análise e exibe o aviso "Expressão regular inválida.".
  • Ausência de Resultados: Quando o padrão não encontra qualquer correspondência no texto de teste, é apresentada a mensagem "Nenhuma correspondência.".
  • Limites da Flag Global: Quando a flag g está ativa, a ferramenta limita o processamento a um máximo de 1 000 correspondências no total. Adicionalmente, para evitar a sobrecarga da interface, é exibido um máximo de 100 cartões de correspondência detalhados. Caso estes limites sejam ultrapassados, surge a nota informativa "Exibindo as primeiras {max} correspondências.".

O Perigo do Retrocesso Catastrófico (Catastrophic Backtracking)

Um dos problemas mais comuns na criação de expressões regulares é o retrocesso catastrófico. Este fenómeno ocorre quando um padrão contém repetições aninhadas ou ambíguas (como (a+)+ ou ([a-zA-Z]+)* seguidos de um caractere que não existe no texto). Perante uma falha de correspondência perto do fim de uma string longa, o motor de regex tenta avaliar um número exponencial de caminhos e combinações possíveis antes de declarar que não há correspondência.

Este processo consome rapidamente os recursos do processador, podendo travar o separador do navegador. Para mitigar este risco, o Testador de Regex monitoriza o tempo de execução. Se o padrão demorar mais de 2 segundos a ser processado, a ferramenta cancela a operação e exibe o seguinte aviso de erro: "Este padrão está a demorar muito para ser executado — pode ser extremamente lento devido a retrocesso catastrófico. Tente simplificá-lo.".

Privacidade e Processamento de Dados

A privacidade dos dados introduzidos é assegurada pelo método de execução da ferramenta. O seu padrão e texto são testados diretamente no seu navegador. Nenhum dado, texto de teste ou expressão regular é enviado para o BroBroGo ou para qualquer servidor externo. Todo o processamento ocorre localmente na memória do seu dispositivo.


Perguntas Frequentes (FAQ)

É seguro colar o meu texto aqui?
Sim. A validação ocorre inteiramente no seu navegador — nada é enviado para o BroBroGo.

O que significam as flags g/i/m/s?
g localiza todas as correspondências em vez de parar na primeira. i ignora maiúsculas/minúsculas. m faz com que ^ e $ correspondam ao início e fim de cada linha, em vez de apenas a string inteira. s permite que o caractere ponto (.) também corresponda a quebras de linha.

Porque é que recebi um aviso de que o meu padrão está a demorar muito?
Alguns padrões causam retrocesso catastrófico (catastrophic backtracking) — o mecanismo tenta um número exponencial de combinações antes de desistir, o que pode travar o separador do navegador. Esta ferramenta cancela a execução após 2 segundos se isso acontecer, evitando o travamento da página. Tente simplificar repetições aninhadas como (a+)+.