当我尝试s/^\(K_.+\):\("."\),/myvars\.setvar(\1,\2)/g
我有100行左右的K_KP4:"4"
,我想要改变
我认为问题是\ 1 \ 2引用相同分组模式的不同实例,这意味着ID在vi正则表达式中的2个不同组是不可能的???
没有运气与sed
是否有一种方法可以使用名称捕获组,例如a =>(K _。+)?
答案 0 :(得分:1)
在vi(m)正则表达式中,您需要转义+
以使其充当元字符。
:%s/^\(K_.\+\):\("."\)/myvars.setvar(\1,\2)/
此外,g
的{{1}}标记表示:s
。如果你的帖子建议每行真的有一个实例,则Replace all instances on this line
是不必要的,而你需要指定命令应该在文件中的所有行上运行 - g