搜索具有单个数字的精确匹配

时间:2019-07-11 17:24:52

标签: vim

我试图仅在vim中搜索单个数字。例如,如果有两组数字1和123,而我想搜索1,则只希望找到单数1。

我尝试使用\ <1>和\%(a)@等正则表达式

1 个答案:

答案 0 :(得分:1)

您几乎找到了正确的解决方案。您想要:

\<1\>

这是因为每个斜角支架都需要脱离。或者,您可以使用:

\v<1>

\v标志告诉vim在不需要转义的情况下将更多字符视为特殊字符(例如,(){}+<>全部变为特殊字符,而不是文字文本。有关详细信息,请阅读:h /\v

vimregex.com是在vim中学习正则表达式的重要参考。 \<\>字符在4.1“锚点”中进行了说明。


如果您想匹配1.23之类的文本,也可以这样做。两种不同的方法:

  1. 修改iskeyword选项,使其包含.。这也会影响w的移动方式

  2. 使用\v<1(\d|.)@!,其基本含义是“单词开头为1,不是后跟其他数字或句点。”