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

标签 regex vim replace

假设我有一个字符串 Test<A Class Name>我想要 <A Class Name>Test 。我正在尝试以下内容:

%s/Test.*/&Test/g

但是,这给了我 <A Class Name>TestTest因为整个字符串都匹配了。我怎样才能改变上面的行来完成我想要的?

最佳答案

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

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

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

关于regex - vim 在搜索和替换中使用通配符时交换子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798026/

相关文章:

java - 替换 ViewPager fragment

ios - 编辑时检查文本字段文本

php - 删除 PHP 字符串中的所有不匹配字符?

Javascript正则表达式任意位置的可选字符并由特定字符边框

css - 我如何在 Vim 中注释一行或一行?

vim - 行号列表作为vim的输入

c#追加字典替换的结果

c# Regex 字符串中的非字母字符

javascript - 需要帮助使用正则表达式使代码优雅

vim - 使用 Vim 将终端标题设置为当前文件名和路径