0

我想在 vi 中进行类似搜索。例如,我使用命令 vi test.log 文件打开。现在我想做一个前向搜索,我正在寻找 [string1]%[string2] 其中 % 意味着这两个字符串之间可以有任意数量的字符(在一行中)。我们在 oracle 中有这种搜索(例如,我们经常搜索 'pattern%')。如何在 vi 中实现它?

4

2 回答 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 回答