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:
- 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.
- 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. - 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. - 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+)+.