我在文件中有以下行
ENGINE = InnoDB AUTO_INCREMENT = 220124
ENGINE = InnoDB AUTO_INCREMENT = 232
ENGINE = InnoDB AUTO_INCREMENT = 22
我想获得如下输出
ENGINE = InnoDB AUTO_INCREMENT = 0
ENGINE = InnoDB AUTO_INCREMENT = 0
ENGINE = InnoDB AUTO_INCREMENT = 0
我用过
%S / AUTO_INCREMENT = * / AUTO_INCREMENT = 0 /克
但没有用。
答案 0 :(得分:2)
用0
替换数字:%s/\d\+/0
答案 1 :(得分:1)
我愿意:
%s/=\s*\d\+\s*$/=0/
...=numbers
,不会更改行中间的数字。例如。在您的变量名称中,如果有= 123
更改为=0
=123(spaces....)
更改为=0
=foo123
答案 2 :(得分:0)
取决于您想要使用的语言,因此我无法真正帮助您使用代码。但是,正则表达式很简单,你可以搜索:
ENGINE=InnoDB AUTO_INCREMENT=(\d+)
并将其替换为:
ENGINE=InnoDB AUTO_INCREMENT=0
答案 3 :(得分:0)
您还可以使用捕获组:
%s/\(.*=\).*/\10
这很有效,因为Vim的正则表达式引擎很贪婪。它不是在第一个等号中停止匹配,而是继续捕获,直到找到最后一个等号。
答案 4 :(得分:0)
我试过这个并且有效。
%s/AUTO_INCREMENT=[0-9]*/AUTO_INCREMENT=0/g