如何将正则表达式匹配附加到vim中的一行?

时间:2012-09-17 19:45:43

标签: regex vim

是否可以使用:%s在一行中找到匹配项,然后将其附加到该行?

以下作为示例字符串,我希望:s/\(value\)/\$\1/之类的内容可以value添加到该行的末尾,但它只是在$内联之前添加value < / p>

演示字符串:

This value is too damn high!

预期产出:

This is too damn high!value

实际输出:

This $value is too damn high!

2 个答案:

答案 0 :(得分:2)

你可以快速前进脏:

:s,\(.*\)\(value\)\(.*\),\1\3\2,

但是可能有更简洁的方法来做到这一点。

寻找&amp;追加(如上所述):

:s,\(.*\(value\).*\),\1\2,

答案 1 :(得分:2)

在Vim中,\$是一个字面的美元符号。行尾匹配只是$。您可以使用\1替换第一个匹配的组,并\0匹配整个匹配。因此:

:s#.*\(value\).*#\0\1