You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅替换以特定模式开头的单词,避免替换整行内容

解决Vim中替换指定前缀单词的问题

问题分析

你之前用的命令%s/abc.*/new/g会替换整行,根源在于.*是贪婪匹配规则,它会从abc开始一直匹配到该行末尾,而非仅匹配单个目标单词。

匹配需求的解决方案

根据你给出的示例(仅替换abc开头且后续为小写字母的单词,保留abc123这类带数字的单词),可以使用以下命令:

%s/\<abc[a-z]*\>/new/g

如果需要替换所有以abc开头的单词(包含abc123这类带数字的),则用这条命令:

%s/\<abc\w*\>/new/g

命令细节解释

  • \<:匹配单词的起始边界,确保只针对完整单词的开头进行匹配
  • abc:指定需要匹配的固定前缀
  • [a-z]*:匹配任意数量的小写字母,仅替换字母结尾的abc前缀单词;换成\w*则会匹配任意单词字符(字母、数字、下划线)
  • \>:匹配单词的结束边界,保证只替换单个完整单词,不会波及后续内容
  • %s/.../.../g:全局替换所有行的匹配项,g标记表示一行内多次匹配时也会全部替换

内容的提问来源于stack exchange,提问作者gaurav srivatsav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:17:43