查找模式并替换PLUS操作?

The*_*olf 1 csv vim notepad++ delimiter

在正则表达式中这可能吗? 假设我收到了这些条目:

1005,15,0,0,0 1014,20,0,0,0 1084,3,360000,180000,1 1025,5,0,0,0

我应该拥有的是,找到一个在它之前有逗号的数字,0,0,0并且在此之后,将数字替换为其数字的140%

1005,15*1.4,0,0,0 1014,20*1.4,0,0,0 1084,3,360000,180000,1 1025,1*1.4,0,0,0

如果它有小数点,将其向上舍入1,并删除小数点,以便:

1025,1,0,0,0 => 1025,2,0,0,0

决赛应该是这样的:

1005,21,0,0,0 1014,28,0,0,0 1084,3,360000,180000,1 1025,2,0,0,0

有人可以请我正确的正则表达式查找和替换?

谢谢!

编辑:弄清楚正则表达式无法做到这一点,所以任何可以帮助我的工具?

Ken*_*ent 5

首先,我没有Windows系统.要用vim打开文件,我想它应该是一样的vim foo.file吗?

无论如何,回到你的问题,命令是:

:%s/\d\+\ze,0,0,0$/\=float2nr(ceil(submatch(0)*1.4))/
Run Code Online (Sandbox Code Playgroud)

它的作用如下:

在此输入图像描述

请注意,我添加了一个新行来显示ceil()的工作原理.

如果这是你第一次打开vim,你需要阅读一些教程.如果您有使用vim的经验,可以查看以上cmd的以下帮助详细信息:

:h :s
:h \ze
:h ceil(
:h submatch(
:h float2nr(
Run Code Online (Sandbox Code Playgroud)