我想在vi中进行搜索。例如我使用命令 vi test.log 该文件打开。现在我想做一个前瞻性搜索,我正在寻找 [string1]%[string2]其中%表示这两个字符串之间可以有任意数量的字符(在一行中)。我们在oracle中进行了这种搜索(例如,我们经常搜索' pattern%')。如何在vi中实现它?
答案 0 :(得分:1)
只要您的文件处于打开状态,只需输入:
即可/string1.*string2
/
引入了搜索
.
表示任何字符
*
表示任意数量(即任意数量的任何字符)
答案 1 :(得分:1)
如果字符串之间必须至少有一个字符:
/string1.\+string2
如果字符串之间不需要任何字符:
/string1.*string2
要使用它们,只需开始输入;前导/
将进入Vim的搜索模式。请注意,如果它们在Vim的正则表达式语法中具有特殊含义,则可能必须转义string1
和string2
中的某些字符。
说明:
.
代表任何字符(如果您只想匹配“字”字符,则可以使用\w
;即字母,数字和下划线。)*
表示“前一个模式的0个或多个实例”。\+
表示“前一个模式的一个或多个实例”。 Vim的正则表达式语法与标准Perl正则表达式语法略有不同,这就是+
量词在其前面需要斜杠的原因。在此处阅读更多内容:http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml