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