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

如何在VSCode代码片段中移除文件名特定词并转为kebab-case

解决方案

要实现移除文件名中的特定单词(如Plugin)并转换为kebab-case,你需要将移除操作和驼峰转换整合到同一个正则表达式中——VSCode的代码片段变量替换要求搜索部分是单一合法的正则,你之前的写法错误地拼接了两个正则,导致失效。

正确的代码片段表达式

${TM_FILENAME_BASE/(Plugin)|(^[A-Z])|([A-Z])/${1:?}${2:/downcase}${3:+-}${3:/downcase}/g}

表达式解析

  • 正则部分:(Plugin)|(^[A-Z])|([A-Z])
    • 捕获组1:匹配要移除的目标单词Plugin
    • 捕获组2:匹配文件名开头的大写字母
    • 捕获组3:匹配文件名中间的大写字母
  • 替换模板:
    • ${1:?}:如果捕获组1匹配到Plugin,则替换为空字符串
    • ${2:/downcase}:如果是开头的大写字母,直接转为小写
    • ${3:+-}${3:/downcase}:如果是中间的大写字母,先添加-,再转为小写

完整代码片段示例

{
  "Kebab Case without Plugin": {
    "prefix": "kebab-no-plugin",
    "body": [
      "${TM_FILENAME_BASE/(Plugin)|(^[A-Z])|([A-Z])/${1:?}${2:/downcase}${3:+-}${3:/downcase}/g}"
    ],
    "description": "Remove 'Plugin' from filename base and convert to kebab-case"
  }
}

效果验证

输入文件名MyAppPlugin.ts,使用该代码片段会输出my-app,完全符合预期。

扩展:移除多个特定单词

如果需要移除多个单词(如Plugin和Component),只需修改正则的捕获组1:

${TM_FILENAME_BASE/(Plugin|Component)|(^[A-Z])|([A-Z])/${1:?}${2:/downcase}${3:+-}${3:/downcase}/g}

内容的提问来源于stack exchange,提问作者cyrus-d

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:12:13