Regex correspond à une chaîne littérale

9

Je veux écrire une fonction (ou utiliser une fonction existante) qui prendra n'importe quelle chaîne et produira un Regex correctement échappé qui ne correspond qu'à cette chaîne. Quelle est la manière la plus rapide et la plus simple de procéder?

PythonNut
la source

Réponses:

9

Vous recherchez regexp-quote:

Cette fonction renvoie une expression régulière dont la seule correspondance exacte est chaîne. L'utilisation de cette expression régulière dans la recherche ne réussira que si les caractères suivants du tampon sont des chaînes; son utilisation dans une fonction de recherche réussira si le texte recherché contient une chaîne.

Cela vous permet de demander une correspondance de chaîne exacte ou une recherche lors de l'appel d'une fonction qui souhaite une expression régulière.

Dan
la source
Je le jure, j'ai cherché dans les documents et Google, je ne pensais tout simplement pas à la citation comme mot clé. Merci.
PythonNut du
1
regexp-quotea la bonne alternative d'utiliser des caractères spéciaux d'échappement dans une chaîne correctement pour une utilisation lorsqu'une fonction attend une expression régulière sous "forme Emacs" - par exemple, si vous ne vous souvenez pas du nombre de barres obliques inverses à utiliser pour échapper à une barre oblique inverse littérale, exécutez-la simplement regexp-quotedans le scratchtampon ou ielm.
dodgethesteamroller