vim在搜索和替换中使用通配符时交换子串

时间:2015-11-19 07:51:48

标签: regex vim replace

假设我有一个字符串Test<A Class Name>,我想拥有<A Class Name>Test。我正在尝试以下方面:

%s/Test.*/&Test/g

然而,这给了我<A Class Name>TestTest,因为整个字符串都是匹配的。如何更改上面的行来完成我想要的?

1 个答案:

答案 0 :(得分:2)

您可以使用捕获组,如下所示:

%s/Test\([^[:space:]]\+\)/\1Test/g 

\([^[:space:]]\+\) Test 之后的所有非空格字符捕获到捕获组1中。 \1Test以相反的顺序重新组装。