ForHosting KIT · Ferramentas para dev

Escape caracteres especiais de regex para busca literal

Deixe qualquer texto seguro para entrar em uma expressão regular: invoice.total [draft]? vira invoice\.total \[draft\]\?, então o ponto, os colchetes e a interrogação são procurados como são, em vez de funcionarem como instruções. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve

Nem sempre é possível inserir texto literal diretamente em uma expressão regular. Caracteres como ponto, interrogação, colchete ou barra invertida são instruções da sintaxe regex; portanto, um valor sem escape pode encontrar o texto errado ou até invalidar o padrão. Esta capacidade transforma uma string em um fragmento de padrão ECMAScript que trata literalmente cada metacaractere de regex. Ela é útil quando termos de busca, nomes de arquivo, identificadores, rótulos ou outros valores fornecidos por usuários precisam integrar uma expressão regular sem mudar de significado.

Transforme texto literal em um fragmento de padrão seguro

Envie no campo text o valor exato que a expressão regular deve encontrar. O resultado contém escaped, um fragmento de padrão no qual cada metacaractere de regex ECMAScript recebe uma barra invertida antes dele. Letras comuns, números, espaços, pontuação sem significado em regex, quebras de linha e caracteres Unicode permanecem inalterados.

Por exemplo, um ponto normalmente representa qualquer caractere em uma expressão regular, enquanto um ponto escapado representa um ponto real. Parênteses normalmente criam um grupo, colchetes abrem uma classe de caracteres, chaves podem introduzir uma contagem de repetição e interrogações ou asteriscos controlam repetições. O escape desses símbolos preserva o sentido literal do valor original.

O fragmento retornado não inclui barras delimitadoras nem flags, por isso você pode passá-lo diretamente ao construtor RegExp, inseri-lo em um padrão maior ou armazená-lo como corpo do padrão. Uma string vazia é válida e produz um valor escaped vazio, pois não há caracteres a transformar.

Combine o valor escapado com sintaxe regex intencional

O escape é especialmente útil quando uma parte do padrão vem de dados e outra é escrita de propósito como sintaxe regex. Imagine que um aplicativo precise localizar no início de uma linha um código de produto informado por um usuário. Primeiro escape o código; depois acrescente a âncora inicial e qualquer lógica de limite necessária.

Essa separação mantém a estrutura confiável do padrão distinta do conteúdo literal. Não escape o padrão inteiro depois de montá-lo, pois isso também neutralizaria as âncoras, os grupos, as alternativas ou os quantificadores que deveriam continuar ativos. A saída representa um corpo de padrão ECMAScript, e não a notação do código-fonte JavaScript.

Essa diferença é importante: barras não são especiais para o construtor RegExp e, por isso, são preservadas. Se você inserir o resultado em um literal regex delimitado por barras dentro de código JavaScript gerado, o escape do delimitador no código-fonte será outra etapa. No código normal de um aplicativo, prefira passar a string escapada para new RegExp e escolher as flags separadamente.

Entenda a garantia e valide o projeto ao redor

A transformação é determinística e linear: ela percorre a string recebida e prefixa os caracteres que controlam a sintaxe de expressões regulares ECMAScript. Não usa rede, não executa a expressão resultante, não escolhe flags, não adiciona âncoras e não decide se a busca diferencia maiúsculas de minúsculas. Essas escolhas pertencem ao aplicativo, porque alteram o comportamento da correspondência, não a segurança literal.

Cada formato possui regras próprias de escape, e combiná-las com o escape de regex exige aplicar cada camada no limite correto. Depois da composição, teste o padrão completo com exemplos positivos e negativos representativos, sobretudo ao adicionar trechos opcionais ou alternativas ao redor do fragmento escapado.

Monte uma busca literal

Transforme um termo de busca em fragmento seguro para regex antes de adicionar âncoras ou flags intencionais.

Encontre arquivos e identificadores

Preserve pontos, colchetes, parênteses, sinais de mais e outros caracteres de sintaxe em valores exatos.

Proteja a composição dinâmica de padrões

Mantenha literal o texto fornecido por usuários enquanto o código confiável define a estrutura regex ao redor.

Quais caracteres recebem escape?

A saída escapa barra invertida, circunflexo, cifrão, ponto, barra vertical, interrogação, asterisco, sinal de mais, parênteses, colchetes e chaves.

A saída inclui delimitadores de regex?

Não. O valor escapado é um corpo ou fragmento de padrão ECMAScript sem barras delimitadoras.

Por que a barra comum não recebe escape?

Ela não é especial em um padrão ECMAScript passado ao construtor RegExp. Escapar delimitadores de regex no código-fonte é uma tarefa separada da geração de JavaScript.

Posso adicionar âncoras ou flags?

Sim. Adicione sintaxe regex intencional ao redor do fragmento escapado e informe as flags separadamente ao construir a expressão regular completa.

O que acontece com uma string vazia?

Ela é aceita e retorna um valor escaped vazio, que representa um literal de comprimento zero.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/dev2/regex-special-char-escape

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/dev2/regex-special-char-escape \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"invoice.total (USD) [draft]?"}'
{
  "text": "invoice.total (USD) [draft]?"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.regex_special_char_escape",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Entenda a garantia e valide o projeto ao redor

A capacidade também não prepara o valor para um literal de string de linguagem de programação, documento JSON, comando de shell, atributo HTML ou URL. Entradas que não sejam strings são rejeitadas com um erro invalid_input, sem coerção; assim, números, arrays, objetos, null ou booleanos não viram texto inesperado silenciosamente. As solicitações da API usam o preço-base publicado de US$ 0,002.

O que acontece se text não for uma string?

A solicitação falha com um erro invalid_input. Os valores não são convertidos implicitamente.

Quanto custa uma solicitação da API?

O preço-base da API é US$ 0,002 por solicitação, e a mesma operação determinística também pode ser executada no navegador.

Ver a documentação completa do KIT →