vi:s:将K_KP4:“4”更改为myvars.setvar(K_KP4,“4”)

时间:2014-04-05 23:49:03

标签: regex vi

当我尝试s/^\(K_.+\):\("."\),/myvars\.setvar(\1,\2)/g

时,我确实拥有它

我有100行左右的K_KP4:"4",我想要改变

我认为问题是\ 1 \ 2引用相同分组模式的不同实例,这意味着ID在vi正则表达式中的2个不同组是不可能的???

没有运气与sed

是否有一种方法可以使用名称捕获组,例如a =>(K _。+)?

1 个答案:

答案 0 :(得分:1)

在vi(m)正则表达式中,您需要转义+以使其充当元字符。

:%s/^\(K_.\+\):\("."\)/myvars.setvar(\1,\2)/

此外,g的{​​{1}}标记表示:s。如果你的帖子建议每行真的有一个实例,则Replace all instances on this line是不必要的,而你需要指定命令应该在文件中的所有行上运行 - g