Pular para o conteúdo
  • Compressor de imagensFerramentas de imagem · Deixe fotos e gráficos menores recodificando-os em JPG ou WebP, com controle deslizante de qualidade e redução opcional das dimensões.
  • Redimensionador de imagensFerramentas de imagem · Altere a largura e a altura de uma imagem em pixels ou por porcentagem, com redução de alta qualidade.
  • Conversor de imagensFerramentas de imagem · Mude o formato de uma ou várias imagens para JPG, PNG ou WebP, com controle da qualidade e da transparência.
  • Recortar imagemFerramentas de imagem · Recorte parte de uma imagem com uma seleção arrastável, proporções predefinidas e medidas exatas em pixels.
  • Girar e espelhar imagemFerramentas de imagem · Gire uma imagem em 90° ou 180° e espelhe-a na horizontal ou na vertical, com pré-visualização ao vivo.
  • Visualizador e removedor de EXIFFerramentas de imagem · Veja os dados EXIF de uma foto – câmera, data e localização – e remova todos eles ou só a posição GPS, sem perder qualidade.
  • HEIC para JPGFerramentas de imagem · Transforme fotos HEIC e HEIF de iPhones e iPads em arquivos JPG ou PNG que abrem em qualquer lugar.
  • Desfocar e pixelizar imagemFerramentas de imagem · Oculte rostos, nomes, placas de carro e outros detalhes de uma foto com pixelização, desfoque ou uma caixa sólida.
  • Gerador de faviconFerramentas de imagem · Crie um conjunto completo de favicon – ICO, ícones PNG e web manifest – a partir de uma imagem, um texto ou um emoji.
  • Juntar PDFFerramentas de PDF · Junte vários arquivos PDF em um único documento, na ordem que você escolher, com intervalos de páginas opcionais por arquivo.
  • Dividir PDFFerramentas de PDF · Extraia páginas para um novo PDF ou divida um documento em vários arquivos por página, intervalo ou número fixo de páginas.
  • Reordenar páginas de PDFFerramentas de PDF · Mude a ordem das páginas de um PDF arrastando e soltando, exclua páginas indesejadas e salve o resultado.

Testador de regex

Experimente uma expressão regular no seu texto e veja cada correspondência, grupo de captura e substituição enquanto digita.

Funciona no seu navegador – seus dados não são enviados

Carregando a ferramenta…

Sobre: Testador de regex

Uma expressão regular (regex) descreve um padrão de texto – por exemplo, “quatro dígitos, um hífen e depois dois dígitos” – e é usada para buscar, validar e reescrever texto em código, editores, ferramentas de linha de comando e planilhas. Fazer um padrão corresponder exatamente ao que você quer é muito mais fácil quando dá para ver as correspondências na hora.

Este testador usa o próprio mecanismo de regex JavaScript do seu navegador, então os resultados são os mesmos que RegExp, match e replace produzem em JavaScript e Node.js. As correspondências são destacadas enquanto você digita, cada uma é listada com a posição e os grupos de captura, e o modo “Substituição” mostra o que um texto de substituição produz.

Os padrões rodam em um worker em segundo plano com limite de tempo, então um padrão com backtracking catastrófico não consegue travar a página. Seu padrão e seu texto ficam no seu navegador.

Como usar

  1. Digite um padrão em “Expressão regular”, sem as barras ao redor – ou clique em um dos “Exemplos”.
  2. Ative ou desative as “Flags”: g, i, m, s, u e y, além de d e v se o seu navegador oferecer suporte a elas.
  3. Cole o texto em que quer buscar em “Texto de teste”. As correspondências ficam marcadas em “Correspondências destacadas” e listadas em “Detalhes das correspondências”, com índice, comprimento e grupos.
  4. Escolha “Substituição” em “Modo” e informe um “Texto de substituição” como $<day>/$<month>/$<year> para ver o “Resultado após a substituição”; depois clique em “Copiar resultado”.
  5. Consulte a sintaxe no “Guia rápido” abaixo do testador e use “Limpar” para começar de novo.

Recursos

  • Destaque ao vivo e detalhes das correspondências: Cada correspondência é destacada no texto e listada com índice, comprimento e grupos de captura numerados e nomeados. Correspondências vazias (de comprimento zero) aparecem como marcadores finos, e com a flag d o início e o fim de cada grupo também são incluídos.
  • Pré-visualização da substituição: Teste uma substituição com a sintaxe do JavaScript: $1 e $<name> para grupos, $& para a correspondência inteira, $` e $' para o texto antes e depois dela, e $$ para um cifrão.
  • O mecanismo JavaScript de verdade: As correspondências usam a implementação de RegExp do navegador, então o comportamento e os erros de sintaxe são exatamente os que o seu código JavaScript vai ver.
  • Proteção contra padrões descontrolados: Cada execução acontece em um Web Worker e é interrompida depois de 1,5 segundo. Em vez de uma aba travada, você recebe uma explicação sobre backtracking catastrófico.
  • Exemplos e guia rápido: Carregue padrões simples para textos parecidos com e-mail, datas ISO, cores hex e palavras repetidas, e consulte rapidamente os tokens mais comuns e os códigos de substituição.

Exemplos

Reformatar datas

Carregue o exemplo de data ISO e mude para “Substituição”: o padrão captura ano, mês e dia como grupos nomeados, e a substituição $<day>/$<month>/$<year> transforma 2024-03-15 em 15/03/2024.

Encontrar palavras duplicadas

O padrão \b(\w+)\s+\1\b com a flag i encontra "is is" e "the the" – mesmo quando a palavra repetida continua na linha seguinte. Substituir por $1 remove a duplicata.

Extrair cores de um CSS

Com #(?:[0-9a-f]{6}|[0-9a-f]{3})\b e as flags g e i, a lista de correspondências mostra todas as cores hex de três e seis dígitos de uma folha de estilos, enquanto valores inválidos como #12345G são ignorados.

Diagnosticar um padrão lento

O exemplo “Padrão lento” ^(a+)+$ aplicado a uma longa sequência de "a" seguida de "b" é interrompido depois de 1,5 segundo com um aviso. O + aninhado é o problema; ^a+$ corresponde ao mesmo texto instantaneamente.

Limitações e observações

  • Só a sintaxe de regex do JavaScript é suportada. Recursos de outros sabores, como quantificadores possessivos, grupos atômicos, recursão ou \A e \Z, não estão disponíveis, e a sintaxe exata aceita depende do seu navegador.
  • O texto de teste é limitado a 200.000 caracteres. Até 5.000 correspondências são listadas e destacadas; a contagem de correspondências e o modo “Substituição” continuam cobrindo todas elas.
  • Cada execução é interrompida depois de 1,5 segundo. Por isso, um padrão legítimo, mas muito pesado, aplicado a um texto longo também pode ser interrompido.
  • Como no JavaScript, sem a flag g só a primeira correspondência é encontrada e substituída.
  • Os padrões de exemplo são simples de propósito, para aprender e fazer buscas rápidas. Eles não são validadores completos – o exemplo de data, por exemplo, aceita 2024-02-30.
  • O índice e o comprimento são contados em unidades de código UTF-16, como no JavaScript, então um emoji conta como dois caracteres.

Perguntas frequentes

Que sabor de regex este testador usa?

JavaScript (ECMAScript), executado pelo mecanismo do seu navegador. Padrões que funcionam aqui funcionam do mesmo jeito em código JavaScript e Node.js. Padrões de Python, PCRE (PHP) e Java costumam ser parecidos, mas diferem em detalhes como o suporte a lookbehind, flags embutidas e a sintaxe de grupos nomeados.

Por que meu padrão encontra só uma correspondência?

Ative a flag g (global). Sem ela, o JavaScript para depois da primeira correspondência – tanto ao buscar quanto ao substituir.

O que é backtracking catastrófico?

Padrões com quantificadores aninhados ou sobrepostos, como (a+)+ ou (\w|\d)*, podem testar um número exponencial de caminhos em um texto que quase corresponde. O mecanismo pode então rodar por minutos. Deixar o padrão mais específico – por exemplo ^a+$ em vez de ^(a+)+$ – geralmente resolve.

Como uso um grupo capturado na substituição?

Escreva $1, $2 e assim por diante para grupos numerados, ou $<name> para um grupo escrito como (?<name>…). $& insere a correspondência inteira, e $$ insere um cifrão literal.

Preciso escapar as barras normais?

Não neste testador: as barras ao redor da caixa são só decoração, e o padrão é passado diretamente para new RegExp(). Dentro de um literal de regex do JavaScript, como /a\/b/, a barra precisa de escape.

Meu texto é enviado para um servidor?

Não. As correspondências são calculadas em um Web Worker dentro desta página, e nem o padrão nem o texto são enviados pela rede.

Mais ferramentas gratuitas