VS Code代码片段:驼峰文件名转连字符小写的正则表达式需求
VS Code代码片段:驼峰文件名转连字符小写的正则方案
完整实现写法
在VS Code代码片段中,你可以用以下两种方式完成需求,一次性实现连字符插入+全小写转换:
方式1:捕获组内直接转小写(更高效)
${TM_FILENAME_BASE/(.)([A-Z])/${1}-${2:/downcase}/g}
方式2:全局结果转小写
${TM_FILENAME_BASE/(.)([A-Z])/${1}-${2}/g | toLowerCase}
细节解释
TM_FILENAME_BASE是VS Code内置变量,用于获取不带扩展名的文件名- 正则
(.)([A-Z]):匹配任意字符后紧跟大写字母的位置,同时兼容小驼峰(如myFileName)和大驼峰(如MyFileName)场景 ${2:/downcase}:VS Code专属的替换修饰符,直接将第二个捕获组的大写字母转为小写g修饰符:全局替换所有符合条件的位置,避免仅处理第一个匹配项
对你初始正则的优化
你写的([a-z])([A-Z])/$1-$2/逻辑是正确的,但仅能匹配小驼峰(前面是小写字母的情况)。如果要兼容大驼峰文件名(如MyFileName),换成(.)([A-Z])更通用——它会匹配任意字符后的大写字母,包括开头的大写字母,再配合转小写修饰符就能得到全小写的连字符格式。
示例验证
输入文件名myFileName:
- 正则匹配
yF和eN两个位置 - 替换后直接得到目标格式
my-file-name(方式1直接把F和N转小写;方式2先得到my-FileName再全局转小写)
内容的提问来源于stack exchange,提问作者Kate
相关产品推荐
相关产品推荐

