Regex corresponde à sequência literal

9

Eu quero escrever uma função (ou usar uma existente) que pegue qualquer string e produza um Regex com escape correto que corresponda apenas a essa string. Qual é a maneira mais rápida e simples de fazer isso?

PythonNut
fonte

Respostas:

9

Você está procurando regexp-quote:

Essa função retorna uma expressão regular cuja única correspondência exata é string. O uso dessa expressão regular na visualização terá sucesso apenas se os próximos caracteres no buffer forem string; usá-lo em uma função de pesquisa será bem-sucedida se o texto que estiver sendo pesquisado contiver sequência.

Isso permite que você solicite uma correspondência exata de sequência ou pesquise ao chamar uma função que deseja uma expressão regular.

Dan
fonte
Juro, pesquisei os documentos e o Google, não pensei em citação como uma palavra-chave. Obrigado.
PythonNut
11
regexp-quotepossui o bom uso alternativo de escape de caracteres especiais em uma string corretamente para uso quando uma função espera uma regexp no "formulário Emacs" - por exemplo, se você não consegue se lembrar de quantas barras invertidas usar para escapar de uma barra invertida literal, basta executá-la regexp-quoteno scratchbuffer ou ielm.
Dodgethesteamroller