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

VS Code代码片段正则表达式失效,求文件名格式转换方案

VS Code代码片段文件名转换解决方案

问题说明

有一批文件名以core-开头,后续为一个或多个连字符分隔的单词,示例:

core-query
core-query-pagination
core-query-pagination-numbers

需要通过VS Code代码片段将其转换为全大写、空格分隔的格式,要求:

  1. 移除core-前缀
  2. 将连字符-替换为空格
  3. 所有单词转为大写

当前使用的正则表达式输出为单词首字母大写的格式,不符合全大写要求:

"${TM_FILENAME_BASE/([^-]+)(-*)/${1:/capitalize}${2:+ }/g}"

输出结果:

Core Query Pagination Numbers

正确实现方案

方案1:嵌套替换(通用灵活)

使用嵌套变量替换,分三步完成转换,逻辑清晰且适配任意数量的连字符分隔单词:

"${${TM_FILENAME_BASE/^core-//}/-/ /g:/toUpperCase}"

执行逻辑:

  • ${TM_FILENAME_BASE/^core-//}:先移除文件名中的core-前缀,得到query、query-pagination这类内容
  • /-/ /g:把剩余内容里的所有连字符-替换为空格,得到query、query pagination这类格式
  • :/toUpperCase:将最终处理后的字符串统一转为大写,得到目标结果

方案2:单正则全局替换

通过单个正则表达式一次性完成所有转换步骤:

"${TM_FILENAME_BASE/(^core-)|-([a-z]+)/${2:/toUpperCase}${1:+ }/g}"

执行逻辑:

  • 匹配^core-前缀并替换为空
  • 匹配-([a-z]+)格式的片段,将捕获到的单词转为大写,同时把连字符替换为空格
  • 全局匹配确保所有连字符和单词都被处理

测试验证

使用上述任意方案,对示例文件名的转换结果均符合预期:

QUERY
QUERY PAGINATION
QUERY PAGINATION NUMBERS

内容的提问来源于stack exchange,提问作者Germán

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:48:28