vim - vim 中的正则表达式

标签 vim

如何在 vim 中将字符串(4000 到 4200)替换为(5000 到 5200)..

最佳答案

另一种可能性:

:%s/\v<4([01]\d{2}|200)>/5\1/g

这个也能做 200 次,而且由于使用了 \v switch,所以它不会过度“倾斜牙签综合症”。 .

编辑 #1:添加词边界 anchor ( '<''>' )以防止替换 "14100"等等


编辑 #2:在某些情况下,“单词边界”不足以正确捕获所需的模式。如果您希望空格作为分隔因素,表达式会变得更加复杂。

:%s/\v(^|\s)@<=4([01]\d{2}|200)(\s|$)@=/5\1/g

其中“(^|\s)@<=”是“行首”或“\s”的后视断言,“(\s|$)@=”是“行尾”或“的先行断言” \s ".

关于vim - vim 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1198878/

相关文章:

git - Vim 忽略自动命令中的特定文件

vim - latex /VIM : change all $$ . 。 $$ 到\begin{equation} ....\end{equation}

linux - Vim - 编辑器和 shell 并存

vim - 使用垂直拆分的vim自动滚动分页

linux - vim 在现有选项卡中打开缓冲区

python - 如何让我的 Vim 和 MacVim 找到 python3?

vim - 在Vim中使用外部语法荧光笔

java - 如何让终端模拟器发送点击拖动消息?

vim - grep 忽略 vim 临时文件

vim - 有没有可视化的二维码编辑器?