regex 如何在VSCode代码段中从文件名中删除特定单词并将其转换为kebab-case?

jum4pzuy  于 2023-04-13  发布在  Vscode
关注(0)|答案(1)|浏览(146)

我正在尝试创建一个VSCode代码段,该代码段从文件名中删除特定单词并将其转换为kebab-case。例如,如果文件名为“MyAppPlugin.ts”,我希望代码段将其转换为“my-app”。我在代码段中找到并尝试了以下表达式,该表达式将文件名转换为kebab-case:

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

要删除Plugin,我修改代码段如下:

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

但是,此表达式似乎没有从文件名中删除“插件”一词。有人可以帮助我修改此表达式以实现所需的行为吗?

pxiryf3j

pxiryf3j1#

在收到@Wiktor_Stribiąew在评论中的提示后,我开始思考正则表达式分组是如何工作的。很明显,我一直在错误地使用正则表达式分组。我应该使用(Plugin)//,而不是使用(Plugin)|,现在它变成了组1。有了这个纠正,我现在可以继续处理其他组了:(Plugin)|(^[A-Z])|([A-Z])
这是工作代码段:

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

相关问题