Regex corrisponde alla stringa letterale


9

Voglio scrivere una funzione (o usarne una esistente) che prenda qualsiasi stringa e produca un Regex con escape corretto che corrisponda solo a quella stringa. Qual è il modo più veloce e semplice per farlo?

Risposte:


9

Stai cercando regexp-quote:

Questa funzione restituisce un'espressione regolare la cui unica corrispondenza esatta è stringa. L'uso di questa espressione regolare nella ricerca avrà successo solo se i caratteri successivi nel buffer sono stringhe; usarlo in una funzione di ricerca avrà esito positivo se il testo da cercare contiene una stringa.

Ciò consente di richiedere una corrispondenza stringa esatta o una ricerca quando si chiama una funzione che desidera un'espressione regolare.


Lo giuro, ho cercato i documenti e Google, semplicemente non pensavo al preventivo come a una parola chiave. Grazie.
PythonNut

1
regexp-quoteha il piacevole uso alternativo di escape di caratteri speciali in una stringa correttamente da usare quando una funzione si aspetta una regexp in "forma Emacs" - ad esempio se non ricordi quante barre rovesciate usare per sfuggire a una barra rovesciata letterale, basta eseguirla regexp-quotenel scratchbuffer o ielm.
dodgethesteamroller il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.