我有一个 sql 转储文件,其中包含如下条目:
INSERT INTO "widgets" VALUES(152,'12477','[email protected]','smtp','Jerry Jo',0);
INSERT INTO "widgets" VALUES(153,'12477','36542','sip','Jerry Jo',0);
INSERT INTO "widgets" VALUES(158,'92865','[email protected]','smtp','Jane Jo',0);
我想搜索“VALUES(XXX,”) 并将其替换为“VALUES(DEFAULT,”,当前单词值后面的数字最长可达 5 位。
到目前为止,我一直在使用类似于以下命令:
:%s/\<(VALUES(\d+\>,/VALUES(DEFAULT,/g
但我似乎无法正确理解。任何建议,将不胜感激。
答案1
使用非常神奇 \v
标志使正则表达式更像perl
和不太像vim
(因此需要转义(
但在正面\d+
匹配):
:%s/\vVALUES\(\d+/VALUES(DEFAULT