vim正则表达式的替换变量

在正规表达式中使用 ( 和 ) 符号括起正规表达式,即可在后面使用1、2 等变量来访问 ( 和 ) 中的内容。

例如有下列英汉对照文本:

adapter 适配器
address 地址
algebraic data type 代数数据类型

想要把英语单词和汉字中间的空格换成制表符 ,可以使用如下正则表达式:

%s/([a-zA-Z]) ([^a-zA-Z])/1 2/

其中,第一个 ( 和 ) 中的内容是一个英语字符,表示为1,即第一个替换变量,第二个 ( 和 ) 中的内容不是英语字符(根据实际情况,这里简单的用这种方式来确定汉字),表示为2,即第2个替换变量。表达式([a-zA-Z]) ([^a-zA-Z])中间包括一个空格。替换字符串为1 2,表示保留空格前后的字符,并把空格替换为制表符。表达式最后没有g,表示只处理每行的第一次匹配结果。

原文地址:https://www.cnblogs.com/yylei/p/12457007.html