我有这个带数字的文本:
My numbers are 04, and 0005
My numbers are 05, and 0006
My numbers are 06, and 0035
My numbers are 07, and 0007
My numbers are 08, and 0009
这是我一直用来增加或减少选择/块选择/列中数字的代码: pe 将上述文本中的最后 4 个数字增加 8:
'<,'>s/\%V\<\d\{4}\>/\=submatch(0)+8/g
但我今天注意到它做了一些奇怪的事情。这是输出:
My numbers are 04, and 13
My numbers are 05, and 14
My numbers are 06, and 37 <---
My numbers are 07, and 15
My numbers are 08, and 17
- 它删除了前导零(如果有前导零,我想保留它们,如果没有前导零,我想不添加它们)
- 除了 37 之外的所有数字都加了 8,它加了 2。(为什么?)
谁能帮我找到一个正则表达式来从选择(或块选择)中添加/减去数字而不会丢失前导零?
注意:
我注意到 Control A + Control x 保留前导零并按照我的意愿进行工作,但是:
- 我已经看到它不能用于替代命令 ('<,'>s/)
- 我不知道如何将 pe 200 添加到数字列表中(200 x ?)