首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将VIM中的捕获组2替换为一些文本

如何将VIM中的捕获组2替换为一些文本
EN

Stack Overflow用户
提问于 2017-10-23 16:02:06
回答 2查看 4K关注 0票数 5

我使用下面的regex对abc1,cde2,efg3替换为hello,但不知怎么它不起作用

代码语言:javascript
运行
复制
 :%s/\(\d\{2}:\d\{2}:\d\{2\}\s\)\([A-z0-9]*\)/hello/gc

3月17日02:25:01 abc1微:启动use.slice。

3月17日02:25:01 cde2微:启动use.slic

3月17日02:25:01 efg3微:启动use.slic

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-23 16:09:28

您可以在vim中使用此替代命令。

代码语言:javascript
运行
复制
%s/\v(\d{2}:\d{2}:\d{2}\s+)[a-zA-Z0-9]+/\1hello/g
  • 这里,\v用于非常神奇的,它避免了按照旧的BRE语法进行转义。
  • \1是捕获组#1的回引用。
票数 9
EN

Stack Overflow用户

发布于 2017-10-23 16:36:14

您可以使用\zs来设置替换中匹配的起始位置。

代码语言:javascript
运行
复制
:%s/\d\{2}:\d\{2}:\d\{2\}\s\zs[A-z0-9]*/hello/gc

有关更多帮助,请参见:h /\zs

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

https://stackoverflow.com/questions/46893708

复制
相关文章

相似问题

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