Texto

Regex Tester / Find & Replace

Teste de expressões regulares em texto real: correspondências destacadas e grupos de captura analisados, ou substituição das correspondências encontradas por um novo texto.


                        

                        

A regular expression (regex) is a compact language for describing patterns in text — for searching, validating a format, or replacing matches. This tool highlights matches in real text as you type the pattern, breaks out capture groups, and supports a find-and-replace mode.

How to use it

Common uses

Things to keep in mind

Greedy quantifiers (*, +) grab as many characters as possible — add ? for the minimal match instead (e.g. .*? instead of .*).

Syntax varies slightly between languages — an expression that works here (a JavaScript engine) may need adjusting for PCRE, .NET, or Python.

Artigo sobre esta ferramenta: Expressões regulares: sintaxe básica e padrões comuns

Perguntas frequentes

Qual mecanismo de regex é usado?

A ferramenta usa o mecanismo de regex do JavaScript, não PCRE, então alguma sintaxe específica do PCRE (como asserções recursivas ou certos modos de correspondência possessiva) não funcionará aqui; flags comuns como g, i, m, s e u são suportadas.

Qual a diferença entre quantificadores gulosos e preguiçosos, e entre Testar e Substituir?

Um quantificador guloso como * ou + captura o máximo de texto possível, enquanto sua versão preguiçosa (*?, +?) para o mais cedo possível; quanto aos modos, Testar destaca correspondências e lista grupos de captura (incluindo nomeados), e Substituir aplica texto de substituição, com referências como $1, a cada correspondência.

Meu texto e expressão são enviados a um servidor?

Não, a avaliação da expressão regular acontece inteiramente no lado do cliente no seu navegador, nada é transmitido online.

O que é backtracking catastrófico?

Quantificadores aninhados como (a+)+ podem, em certas strings de entrada, forçar o mecanismo a percorrer uma quantidade exponencial de combinações — a página ou o script "trava" numa expressão aparentemente simples. Essa é uma vulnerabilidade real (ReDoS), por isso quantificadores aninhados complexos devem ser testados com strings longas quase correspondentes.

Por que minha expressão funciona numa linguagem de programação, mas não em outra?

A sintaxe de regex não é totalmente padronizada: PCRE (PHP e muitas outras linguagens), .NET, Python re e JavaScript têm pequenas diferenças no suporte a certas construções (como look-behind ou grupos nomeados) — uma expressão escrita para um mecanismo nem sempre funciona sem alterações em outro.

Artigos: Texto

Case Converter: por que existem estilos de nomenclatura diferentes

Por que um mesmo projeto escreve variáveis em camelCase mas arquivos em kebab-case, e de onde vêm essas regras.

Text Diff: como os algoritmos encontram a diferença entre dois textos

Como um algoritmo de diff encontra o conjunto mínimo de mudanças entre duas versões de um texto.

Ordenar e remover linhas duplicadas: para que serve

Por que uma ordenação numérica que coloca "10" antes de "9" é um erro, e como evitá-lo.

String Escape: por que o mesmo texto precisa ser escapado de forma diferente

Por que a mesma aspa é escapada de forma diferente numa string JS, em JSON e num comando shell.

CRLF contra LF: por que os caracteres de fim de linha ainda importam

Por que um arquivo escrito no Windows pode aparecer como "totalmente alterado" no git em Linux.

Contar caracteres e palavras: por que nem sempre é trivial

Por que um emoji ou uma letra acentuada podem contar como vários caracteres de uma vez.

Lorem Ipsum: de onde vem o texto de preenchimento e para que serve

Por que os designers usam deliberadamente texto "sem sentido" em vez de conteúdo real em mockups.

Slugify: como transformar qualquer texto numa URL

Como um título como "Olá, Mundo!" se transforma numa string compatível com URL como ola-mundo.

Markdown: por que uma sintaxe de texto simples venceu editores ricos

Por que desenvolvedores preferem escrever documentação em Markdown em vez de num editor de texto rico.

Espaços e caracteres invisíveis: a causa oculta de bugs estranhos

Por que duas strings aparentemente idênticas podem não coincidir por causa de um caractere invisível.

Text Reverse: por que "inverter um texto" é mais difícil do que parece

Por que uma inversão ingênua de string pode transformar um emoji em bytes inutilizáveis.

Análise de frequência de texto: para que serve contar repetições de palavras

Como a frequência das letras num texto cifrado ajuda a quebrar as cifras de substituição mais simples.