如何在 Visual Studio 代码片段中使用正则表达式 'capitalize and replace'?

How to use Regex to 'capitalize and replace' in Visual Studio Code's snippets?

我想在 Visual Studio 代码上创建一个片段。

我尝试手动加入正则表达式,但它从来没有像我期望的那样工作:

输入: idss-static-frame.spec

预期结果: IdssStaticFrame

我的正则表达式: ${TM_FILENAME_BASE/((\w+(?=\-))*(\w+(?=\.))*)((\-)*)/${1:/capitalize}/g}

实际结果: IdssStaticFrame.spec

我无法删除 .spec 字符串

对于这种文件名,您可以使用

"${TM_FILENAME_BASE/(\w+)(?:-|\.\w+$)/${1:/capitalize}/g}",

regex demo

详情

  • (\w+) - 第 1 组:一个或多个单词字符
  • (?:-|\.\w+$) - -. + 字符串末尾的 1 个或多个单词字符。

您可以使用

"${TM_FILENAME_BASE/([^-]+)(?:-|\.\w+$)/${1:/capitalize}/g}",

匹配包含除单词字符以外的字符的文件名,因为 [^-]+ 匹配除 -.

以外的 1 个或多个字符
"${TM_FILENAME_BASE/(\w+)[-\.]|.+/${1:/capitalize}/g}",

参见regex101