Regexp:如何匹配两个精确指定的4位数字中的一个

时间:2015-11-05 15:15:53

标签: regex vim

我正在查看vim中包含大量数字的大文件。我正在寻找一个在一个字段中具有数字1119的特定记录,并且我知道2个记录之后在同一个字段中有1196个数字。

我想搜索其中任何一个但都突出显示,

我试过了:

[1119|1196] which matches any of these single digits like 1.
{1119|1196} doesn't find anything (I am not sure what it looks for).
{1119,1196}

也找不到任何东西。我对此感到惊讶,因为我认为它应该寻找1119或1196,并且这些数字在文件中肯定存在很多次。

我最后还尝试将/ g用于全局,但这也无济于事。

我也试过

(1119|1196), and that did not work either.

我也试过

((1119)|(1196)) and that did not work either.

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

请参阅Microsoft.Owin.Cors

  

4.6轮换
  使用\|,您可以将多个表达式组合成一个与其任何组件匹配的表达式。匹配的第一个将被使用。

     

\(Date:\|Subject:\|From:\)\(\s.*\)

所以,你需要转义特殊字符:

\(1119\|1196\)

由于此处的分组应用于可以使用\0 \ 0 - >整个匹配的模式)引用的整个模式,因此您可以安全地使用

1119\|1196

搜索这两个数字。

但是,如果您需要将两个数字作为整个单词找到,请使用\< / \>字边界(然后,分组就可以了):

\<\(1119\|1196\)\>