首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索并替换以下编号

搜索并替换以下编号
EN

Stack Overflow用户
提问于 2014-07-03 11:46:19
回答 2查看 66关注 0票数 0

在包含数字范围(4-5,12-20)的文件中,我希望将所有" number -number+1“范围替换为"number f.”(45-46 > 45 f.)。

知道怎么做到吗?抱歉,如果这件事以前有过,我直到现在还没有发现任何东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-03 11:56:24

由于这个条件(M +1= N)很难在正则表达式中表示,这是:help sub-replace-expression的一种情况:匹配所有的数字范围,通过\(...\)捕获组将它们划分为起始数和结束数。然后在\=替换表达式中,检查条件,通过submatch()访问数字,然后返回原始结果(submatch(0))或浓缩形式。

代码语言:javascript
复制
:%substitute/\(\d\+\)-\(\d\+\)/\=submatch(1) + 1 == submatch(2) ? submatch(1) . ' f.' : submatch(0)/g
票数 3
EN

Stack Overflow用户

发布于 2014-07-03 11:51:20

如果已经创建了该文件,请使用GREP命令解析该文件,并使用SED命令替换。或者使用查找。我肯定这两种方式都有。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24552861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档