vim正则表达式

以下文本中有个id: 3,我想将所有id+4,改成id: 7,
在vim中输入:
:%s/id: \+\(\d\+\)/\=printf("id: %d",submatch(1)+4)/
  • c confirm,每次替换前询问;
  • e error, 不显示错误;
  • g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;
  • i ignore,忽略大小写

表示数量的元字符

 元字符   说明
* 匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n} 匹配n个
\{n,} 匹配n-任意个
\{,m} 匹配0-m个

 

 

 

 

 

 

 

 

 

 

表示位置的元字符

元字符说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾
posted @ 2019-07-29 11:12  少侠不懂天文  阅读(171)  评论(0编辑  收藏  举报