在包含数字范围(4-5,12-20)的文件中,我希望将所有" number -number+1“范围替换为"number f.”(45-46 > 45 f.)。
知道怎么做到吗?抱歉,如果这件事以前有过,我直到现在还没有发现任何东西。
发布于 2014-07-03 11:56:24
由于这个条件(M +1= N)很难在正则表达式中表示,这是:help sub-replace-expression的一种情况:匹配所有的数字范围,通过\(...\)捕获组将它们划分为起始数和结束数。然后在\=替换表达式中,检查条件,通过submatch()访问数字,然后返回原始结果(submatch(0))或浓缩形式。
:%substitute/\(\d\+\)-\(\d\+\)/\=submatch(1) + 1 == submatch(2) ? submatch(1) . ' f.' : submatch(0)/g发布于 2014-07-03 11:51:20
如果已经创建了该文件,请使用GREP命令解析该文件,并使用SED命令替换。或者使用查找。我肯定这两种方式都有。
https://stackoverflow.com/questions/24552861
复制相似问题