Emacs regexp-builder не работает в replace-regexp
У меня есть буфер emacs, содержащий текст
a1b2c3
с помощью regexp-builder, я создаю regexp
"b\\(2\\)"
и может видеть выделение совпадения (b2, с 2 в другом цвете).
однако, когда я вставляю выражение в replace-regexp
, я получаю 0 совпадений. как с кавычками, так и без них. чтобы получить соответствие, мне нужно использовать
b\(2\)
Я предполагаю, что здесь происходит некоторое ускорение, но, конечно же, я должен делать что-то неправильно. кажется, что побег в руке, кажется, побеждает половину пункта.
Ответы
Ответ 1
regexp-builder
может показывать регулярное выражение в нескольких синтаксисах. По умолчанию он использует синтаксис, подходящий для размещения в источнике Emacs Lisp (синтаксис read
), поэтому регулярное выражение помещается между двойными кавычками, и каждая обратная косая черта удваивается. Для интерактивного использования выберите синтаксис string
с помощью C-c C-i
(reb-change-syntax
).