Dopasuj ciąg dosłowny wyrażenia regularnego

9

Chcę napisać funkcję (lub użyć istniejącej), która pobierze dowolny ciąg i utworzy poprawnie uciekający Regex, który pasuje tylko do tego ciągu. Jaki jest najszybszy i najprostszy sposób na zrobienie tego?

PythonNut
źródło

Odpowiedzi:

9

Poszukujesz regexp-quote:

Ta funkcja zwraca wyrażenie regularne, którego jedynym dokładnym dopasowaniem jest łańcuch. Użycie tego wyrażenia regularnego przy przeglądaniu powiedzie się tylko wtedy, gdy kolejne znaki w buforze są ciągami; użycie go w funkcji wyszukiwania powiedzie się, jeśli wyszukiwany tekst zawiera ciąg znaków.

Pozwala to zażądać dokładnego dopasowania ciągu lub wyszukiwania podczas wywoływania funkcji, która potrzebuje wyrażenia regularnego.

Dan
źródło
Przysięgam, przeszukałem dokumenty i Google, po prostu nie pomyślałem o cytacie jako słowu kluczowym. Dzięki.
PythonNut
1
regexp-quotema przyjemne alternatywne użycie znaków specjalnych w ciągach znaków, do użycia, gdy funkcja oczekuje wyrażenia regularnego w „formie Emacsa” - np. jeśli nie pamiętasz, ile ukośników odwrotnych należy użyć, aby uciec od dosłownego odwrotnego ukośnika, po prostu uruchom go regexp-quotew scratchbuforze lub ielm.
dodgethesteamroller