而不是搜索模式

时间:2013-10-09 13:13:52

标签: regex vim

我创建了vim搜索模式以查找错误的状态代码:

   / [45][0-9][0-9]  

它可以找到504499404(每个数字前后的空格)

但我不希望它找到404。如何更改我的搜索模式以使其跳过404

2 个答案:

答案 0 :(得分:7)

对该号码使用否定预测:

/\(.*404\)\@![45]\d\{2\}

更新:感谢Karoly Horvath指出此regex可能会失败并且同一行中有一些数字。好多了:

/\(404\)\@![45]\d\{2\}

比赛结束后负面观察的另一种方式:

/[45]\d\{2\}\(404\)\@<!

答案 1 :(得分:2)

5[0-9][0-9]|4[1-9][0-9]|40[0-35-9]

老派模式是:

  • 5后跟任意两位数字,或者:
  • 4后面没有零,然后是任何数字,或者:
  • 40后面没有4。

我希望你没有其他黑名单代码,因为这会很快变得难看。