Escape texto para que uma regex o encontre literalmente em JavaScript, Python, PHP, Java, Go ou .NET
Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.Escapar uma regex é colocar uma barra invertida antes de cada caractere com significado especial, para que o padrão encontre o texto literalmente. Os 14 caracteres que precisam ser escapados quase em todo lugar são . ^ $ * + ? ( ) [ ] { } | e a barra invertida. Cada linguagem acrescenta alguns, e JavaScript e Java escapam de forma diferente.
Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês
Cole o texto que o padrão deve encontrar exatamente, ou clique em Testar um exemplo.
Escolha a linguagem: JavaScript, Python, PHP, Java, Go, .NET ou sed e grep.
Ative Um por linha para encontrar qualquer uma de várias linhas, unidas com |.
Clique em Copiar, ou pressione Ctrl+Enter, e cole o padrão no seu código.
Em uma expressão regular, um ponto significa qualquer caractere, um sinal de mais significa um ou mais, e colchetes iniciam um conjunto. Para buscar um texto que os contenha, como um preço do tipo $4.99 ou um nome de arquivo como report(1).pdf, cada um desses caracteres precisa ser escapado. Esta ferramenta faz isso do mesmo jeito que a função de escape de cada linguagem, para que o padrão se comporte exatamente como no seu código.
| Linguagem | Função equivalente | Observações |
|---|---|---|
| JavaScript | RegExp.escape |
também escapa / e a pontuação como códigos \x; funciona com as flags u e v |
| Python | re.escape |
só caracteres especiais, desde o Python 3.7 |
| PHP | preg_quote($s, '/') |
acrescenta = ! < > : - # e o delimitador / |
| Java | Pattern.quote |
envolve o texto em \Q e \E |
| Go | regexp.QuoteMeta |
o menor conjunto: \ . + * ? ( ) | [ ] { } ^ $ |
| .NET | Regex.Escape |
também espaços e #, para padrões que ignoram espaços em branco |
| sed, grep | Sintaxe básica POSIX | . [ \ * ^ $ e o delimitador / |
Um por linha. Ative para escapar cada linha separadamente e uni-las com |, para que o padrão encontre qualquer item de uma lista de palavras, URLs ou nomes de arquivo. Linhas em branco e duplicadas são removidas. No sed e no grep a junção é |, que as ferramentas GNU entendem.
Prova, não confiança. Para JavaScript, a página executa o padrão no próprio motor do seu navegador e confirma que ele encontra o texto e nada mais. A saída em JavaScript é testada contra o motor com e sem as flags u e v, e a saída em Python contra o re.escape do CPython em 728 strings.
Colocar o padrão dentro de um literal de string é uma segunda etapa, separada: uma barra invertida em uma string Java ou C# precisa ser duplicada. A ferramenta String Escape cuida dessa parte.
Tudo roda no seu navegador; nada do que você cola é enviado a lugar nenhum.
Os caracteres com significado especial: . ^ $ * + ? ( ) [ ] { } | e a própria barra invertida. Dentro de um padrão eles funcionam como curingas, âncoras, repetições ou grupos, então um ponto literal deve ser escrito \. e um sinal de mais literal \+. Algumas linguagens escapam alguns a mais, como / em JavaScript e PHP, ou espaços no .NET.
Escreva uma barra invertida antes dele: \. encontra apenas um ponto, enquanto um . sozinho encontra qualquer caractere. Assim, example.com como padrão também encontra examplexcom, e example\.com encontra apenas o domínio real. Dentro de colchetes um ponto já é literal, então [.] também funciona.
RegExp.escape escreve uma letra ou um dígito inicial, e pontuação como - , = e espaços, como códigos \x, para que o resultado continue correto onde quer que seja inserido: depois de \0 ou \c, dentro de uma classe de caracteres ou com as flags u e v. O padrão fica mais longo, mas sempre encontra o texto literalmente.
Ambas colocam uma barra invertida antes dos caracteres especiais, mas o preg_quote do PHP também escapa = ! < > : - # e o delimitador que você passar, geralmente /, e escreve um byte NUL como \000. O re.escape do Python também escapa - & ~ # e espaços em branco. A saída de cada ferramenta só é válida para o próprio motor.
Pattern.quote envolve o texto em \Q e \E, que dizem ao motor do Java para ler literalmente tudo o que está entre eles. Se o próprio texto contiver \E, o Java fecha a citação, acrescenta um \E escapado e abre uma nova. Para usar o resultado em código-fonte Java, cada barra invertida precisa então ser duplicada no literal de string.
Escape cada palavra e una-as com uma barra vertical: cat|dog|bird encontra qualquer uma das três. Ative Um por linha aqui, cole a lista e cada linha é escapada e unida para você, com linhas em branco e duplicadas removidas. Coloque ^( e )$ em volta para encontrar apenas linhas inteiras.
Taxas e regras mudam; confira a fonte antes de confiar em um valor.
Ainda com dúvidas? Pergunte sobre Escapar regex e qualquer pessoa que saiba pode responder. Não é preciso ter conta.