предположите, что у меня есть следующее в текстовом файле (или сушеный буфер) открытый в emacs: file_01.txt file_02.txt... file_99.txt
Я хочу к замене запроса или заменяю файлы к 01_file.txt и т.д.
Я хочу использовать query-replace-regexp или заменить-regexp, но не знаю, что вставить. Поисковая первая часть, вставленная "file_.. ", но".." читаются как периоды в замещающей строке. Я начинаю изучать regexp и не знаю, как сделать это. Помогите, спасибо.
M-x replace-regexp
вызывает функцию для замены регулярными выражениями.
Для ввода Replace regexp: \(file\)_\([0-9]+\)
В результате создаются две группы, одна из которых соответствует части 'file', а другая - номеру. Скобки \( ... \)
необходимы для того, чтобы это совпадение стало доступным позже в строке замены.
Для Замените на enter: \2_\1
Здесь вставляется второе совпадение из строки поиска (числовая часть), добавляется _ (подчеркивание), а затем добавляется первое совпадение из строки поиска ("файл").
Более подробную информацию о регулярных выражениях Emacs смотрите в Regexp Syntax и Regexplace.
После того, как Вы освоили основы регенерации, Вы можете обратиться к инструменту Emacs ReBuilder с помощью M-x rebuilder
, который позволяет Вам строить регенераторы интерактивно.