28

我知道nano' 的搜索和替换功能,但它是否能够使用正则表达式进行匹配和替换(特别是使用部分匹配的替换)?如果是这样,您能否提供一些使用的语法示例(用于匹配和替换)?

我开始学习 Perl 风格的正则表达式,但我发现文本编辑器有时会提出自己的语法。

4

5 回答 5

27

我的 nano 版本可以选择使用meta字符 +进行正则表达式搜索R。在 Windows 上的 cygwin 中,元键是alt,所以我点击ctrl+\进入搜索和替换模式,然后alt+r切换到正则表达式搜索。

于 2011-10-26T14:28:30.580 回答
19

您需要在全局nanorc文件中添加或取消注释以下条目(在我的机器上,它是/etc/nanorc):

set regexp

然后启动一个新终端并按CTRL+/并进行替换,现在应该可以识别正则表达式。

编辑


搜索conf->(\S+)

在此处输入图像描述


用。。。来代替\1_conf

在此处输入图像描述


a替换所有匹配项:

在此处输入图像描述


最终结果:

在此处输入图像描述

于 2011-10-12T20:10:44.477 回答
14

nano 的正则表达式格式/表示法使用“扩展正则表达式”,即POSIX 扩展正则表达式,由egrepand使用sed -r,这包括元字符和., , , , , to , , and , , ,和字符类,例如,, , , , , , , , , 和.[]^$()\1\9*{}?+|[:alnum:][:alpha:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]

有关更完整的文档,您可以man 7 regex在 Linux 或man 7 re_formatOS X 中查看手册页。此页面也可能为您提供相同的信息:https ://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended

不幸的是,在 nano 中似乎没有办法匹配跨越多行的任何内容。

于 2012-11-27T18:59:56.193 回答
1

这有点旧,只是更新搜索索引。

Nano 5.5 使用ASCII同一个表中的列。

感谢@SP Arif Sahari Wibowo,

无论如何,我在这里找到了答案(相同的 wiki 链接): https ://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended

于 2021-03-05T14:57:52.190 回答
0

我最近遇到了在以数字开头的每行开头插入文本的问题。为此,将其与我不想更改的文本区分开来的唯一方法是上一个新行。

玩弄这个答案中提供的信息,我能够做到这一点,并决定将其添加到答案中,以防其他人面临同样的情况。

要搜索后跟数字的行首,然后在以数字开头的每一行的开头插入“文本字符串”:

\ 然后“(^ [0-9])”按进位返回,然后:“文本字符串1”按进位返回并选择是,如果它执行您想要的下一步按a。省略 " 引号。

于 2021-07-31T17:14:00.010 回答