以下文本中有个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个 |
表示位置的元字符
元字符 | 说明 |
---|---|
$ | 匹配行尾 |
^ | 匹配行首 |
< | 匹配单词词首 |
> | 匹配单词词尾 |