如何在vim中将字符串(4000到4200)替换为(5000到5200)
另一种可能性
:%s/\v<4([01]\d{2}|200)>/5\1/g
这个也做200,并且它没有因为使用\ v开关而过多地受到"倾斜牙签综合症"的影响.
编辑#1:添加了单词边界锚点('<'
和'>'
)以防止替换"14100"
等.
编辑#2:有些情况下,"单词边界"不足以正确捕获所需的模式.如果您希望空格是分隔因子,则表达式会更复杂一些.
:%s/\v(^|\s)@<=4([01]\d{2}|200)(\s|$)@=/5\1/g
其中" (^|\s)@<=
"是"行首"或" \s
"和" (\s|$)@=
" 的后视断言,是"行尾"或" " 的前瞻\s
.
:%s/\<4\([01][0-9][0-9]\)\>/5\1/g