如何使用vim有条件地替换数字

Bad*_*nan 3 vim replace numbers find

我可以看到很多关于如何使用:%s. 但我想在我的文件中执行此操作,该文件具有大量 CSV 格式的数字:

  1. 查找数字 < -100
  2. 将它们替换为 -98

如何在 VIM 或任何其他编辑器/脚本语言中执行此操作?

San*_*ove 5

可以使用这样的submatch()函数:

:%s/-[0-9]\+/\=submatch(0) < -100 ? -98 : submatch(0)/g
Run Code Online (Sandbox Code Playgroud)

现在每个小于 -100 的数字都将被 -98 替换,其余的保持不变。请注意,此正则表达式只会匹配负数。