Соответствие Regex и поддержка с помощью nano?

Я знаю nano функцию поиска и замены, но может ли он использовать регулярные выражения для сопоставления и подстановки (в частности, замены, которые используют часть соответствия)? Если да, можете ли вы привести несколько примеров используемого синтаксиса (как для сопоставления, так и для замены)?

Я режу зубы на регулярных выражениях в стиле Perl, но я обнаружил, что текстовые редакторы иногда придумывают свой собственный синтаксис.

Ответ 1

Вам нужно добавить или некомментировать следующую запись в глобальном файле nanorc (на моей машине было /etc/nanorc):

set regexp

Затем запустите новый терминал и нажмите CTRL + / и выполните ваши замены, которые теперь должны быть регулярными.

ИЗМЕНИТЬ


Искать conf->(\S+):

enter image description here


Заменить \1_conf

enter image description here


Нажмите a, чтобы заменить все вхождения:

enter image description here


Конечный результат:

enter image description here

Ответ 2

Моя версия nano имеет возможность swtich для поиска в регулярном выражении с символом meta + R. В cygwin в Windows мета-ключ alt, поэтому я попал в ctrl + \, чтобы перейти в режим поиска и замены, а затем alt + R в swtich для поиска в регулярном выражении.

Ответ 3

Формат/обозначение регулярного выражения для nano-использования "Extended Regular Expression", то есть POSIX Extended Regular Expression, которое используется egrep и sed -r, включает метасимволы ., [ и ], ^, $, (, ), \1 до \9, *, { и }, ?, +, | и классы символов, такие как [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] и [:xdigit:].

Для более полной документации вы можете увидеть страницу руководства man 7 regex в Linux или man 7 re_format в OS X. Эта страница также может предоставить вам такую ​​же информацию: http://en.wikipedia.org/wiki/Regular_expression#POSIX_Basic_Regular_Expressions

К сожалению, в nano, похоже, нет способа сопоставить что-либо, охватывающее несколько строк.