一、替换匹配范围之外的内容,要求如下:
如题,当前有格式为:
规则40:****
规则41:****
规则42:****
...
规则50:****
规则51:****
...
需要删除后面4个星号,替换为:(要求:删除星号以后,数字序号不能变)
规则40:
规则41:
规则42:
...
规则50:
规则51:
...
二、正则表达式为:
%s/规则\([4-9][0-9]\):\*\*\*\*/规则\1:/gc
三、释义
命令框架:
%s/AAA/BBB/gc 该命令为全局匹配AAA,并替换为BBB,
参数gc表示:每次用户输入Y确认替换,输入N不替换,具体含义不再赘述
命令释义:
[4-9][0-9] 为匹配2个字符,第一个字符范围为4-9,第二个字符范围为0-9
\([4-9][0-9]\) 符号\(\)括起来的部分表示一个整体表达式,后面的\1就表示该表达式原封不动放在这
备注:
\(\)括起来的部分按顺序表达式1 表达式2 表达式3递增,此命令只有一个表达式,\1
如:
\(aa\)\(bb\)\(cc\)
其中:
aa为表达式1,使用\1进行调用
bb为表达式2,使用\2进行调用
cc为表达式3,使用\3进行调用
\1 表示上述\(\)括起来的表达式
四、核心内容:表达式符号
此次删除/替换动作,主要用到了正则表达式中的“表达式”选项,
用 \(\) 括起来的表达式,使用\1\2\3\...依次递增表示。
\1 表示第1个表达式
\2 表示第2个表达式
\3 表示第3个表达式
...