在vim中搜索和替换数字

Hap*_*ays 2 vim regular-expression

我有一个 sql 转储文件,其中包含这样的条目:

INSERT INTO "widgets" VALUES(152,'12477','abc@gmail.com','smtp','Jerry Jo',0);
INSERT INTO "widgets" VALUES(153,'12477','36542','sip','Jerry Jo',0);
INSERT INTO "widgets" VALUES(158,'92865','me@gmail.com','smtp','Jane Jo',0);
Run Code Online (Sandbox Code Playgroud)

我想用“VALUES(DEFAULT”)搜索和替换“VALUES(XXX,”,当前跟在单词值后面的数字最多可以有5位数字。

到目前为止,我一直在使用以下类似的命令:

 :%s/\<(VALUES(\d+\>,/VALUES(DEFAULT,/g
Run Code Online (Sandbox Code Playgroud)

但我似乎无法正确理解。任何建议,将不胜感激。

thr*_*rig 7

使用非常神奇的 \v标志使正则表达式更像perl和更不像vim(因此需要(转义但在正侧\d+匹配):

:%s/\vVALUES\(\d+/VALUES(DEFAULT
Run Code Online (Sandbox Code Playgroud)