Регулярное совпадение с литеральной строкой

9

Я хочу написать функцию (или использовать существующую), которая будет принимать любую строку и производить правильно экранированный Regex, который соответствует только этой строке. Какой самый быстрый и простой способ сделать это?

PythonNut
источник

Ответы:

9

Вы ищете regexp-quote:

Эта функция возвращает регулярное выражение, единственным точным соответствием которого является строка. Использование этого регулярного выражения в просмотре будет успешным, только если следующие символы в буфере являются строковыми; использование его в функции поиска будет успешным, если искомый текст содержит строку.

Это позволяет запрашивать точное совпадение строк или выполнять поиск при вызове функции, которой требуется регулярное выражение.

Дэн
источник
Клянусь, я искал документы и Google, я просто не думал о цитате в качестве ключевого слова. Спасибо.
PythonNut
1
regexp-quoteимеет хорошее альтернативное использование экранирования специальных символов в строке для использования, когда функция ожидает регулярное выражение в «форме Emacs» - например, если вы не можете вспомнить, сколько обратных косых черт нужно использовать для экранирования буквального обратного слеша, просто запустите его через regexp-quoteв scratchбуфере или ielm.
dodgethesteamroller