我想在 vi 中进行类似搜索。例如,我使用命令 vi test.log 文件打开。现在我想做一个前向搜索,我正在寻找 [string1]%[string2] 其中 % 意味着这两个字符串之间可以有任意数量的字符(在一行中)。我们在 oracle 中有这种搜索(例如,我们经常搜索 'pattern%')。如何在 vi 中实现它?
问问题
227 次
2 回答
1
打开文件后,只需键入:
/string1.*string2
/
引入搜索
.
表示任何字符
*
表示任意数量的它(即任意数量的任意字符)
于 2012-05-23T11:03:45.317 回答
1
如果字符串之间必须至少有一个字符:
/string1.\+string2
如果字符串之间不需要任何字符:
/string1.*string2
要使用这些,只需开始输入即可;前导/
将进入 Vim 的搜索模式。请注意,如果它们在 Vim 的正则表达式语法中具有特殊含义,您可能必须转义其中的一些string1
字符string2
。
解释:
.
代表任何字符(\w
如果您只想匹配“单词”字符,则可以使用;即字母、数字和下划线)。*
表示“前面模式的 0 个或多个实例”。\+
表示“前面模式的一个或多个实例”。
Vim 的正则表达式语法与标准的 Perl 正则表达式语法略有不同,这就是为什么+
量词前面需要一个斜杠的原因。在这里阅读更多:http: //www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml
于 2012-05-23T11:03:46.597 回答