vim正则表达式的替换变量

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

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/tyee/p/10432677.html