我想使用多个分支进行搜索,并从匹配分支中获取子匹配项以用于替换。
对于这个特定问题,我想抓取完全由 '=' 或 '-' (较小的子集)中的一个字符组成的任何行,其中至少包含 3 个该字符,每个字符的空格条件不同。
所以我使用下面的表达式来匹配它们:
^\t\(=\)\{3,}\_$\|[ ]\{5,}^\(-\)\{3,}\_$
我接下来想做的是在替换中使用子匹配。我以为我可以这样做:
:.s/^\t\(=\)\{3,}\_$\|[ ]\{5,}^\(-\)\{3,}\_$/apple\1banana/e
但它似乎只在第一个分支(带有'=')匹配时才有效,而不是第二个分支。我怎样才能使这项工作?我正在寻找一种解决方案,它可以让我使用 20 个分支并且仍然能够从匹配的分支中获取子匹配。