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?

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.