首页 > 解决方案 > 如何使用 vim 有条件地替换数字

问题描述

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

  1. 查找号码< -100
  2. 将它们替换为-98

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

标签: vimreplacenumbersfind

解决方案


可以使用这样的submatch()功能:

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

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


推荐阅读