基于正则表达式的匹配和纳米替换?

时间:2011-10-12 19:36:05

标签: regex replace nano

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

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

5 个答案:

答案 0 :(得分:19)

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

答案 1 :(得分:14)

您需要在全局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 :(得分:13)

用于纳米使用的正则表达式格式/表示法" 扩展正则表达式",即 POSIX扩展正则表达式,由{{使用1}}和egrep,其中包括元字符sed -r.[]^$,{ {1}},()\1\9*{},{{1和?+|[:alnum:][:alpha:][:cntrl:][:digit:],{等字符类{1}},[:graph:][:lower:][:print:]

有关更完整的文档,您可以参阅手册页,Linux中的[:punct:]或OS X中的[:space:]。此页面也可能提供相同的信息:https://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended

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

答案 3 :(得分:0)

这个有点老了,只是更新了搜索索引。

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

感谢@SP Arif Sahari Wibowo,

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

答案 4 :(得分:0)

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

利用此答案中提供的信息,我能够做到并决定将其添加到答案中,以防其他人面临同样的情况。

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

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