如何在 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}",
详情
(\w+)
- 第 1 组:一个或多个单词字符
(?:-|\.\w+$)
- -
或 .
+ 字符串末尾的 1 个或多个单词字符。
您可以使用
"${TM_FILENAME_BASE/([^-]+)(?:-|\.\w+$)/${1:/capitalize}/g}",
匹配包含除单词字符以外的字符的文件名,因为 [^-]+
匹配除 -
.
以外的 1 个或多个字符
"${TM_FILENAME_BASE/(\w+)[-\.]|.+/${1:/capitalize}/g}",
参见regex101。
我想在 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}",
详情
(\w+)
- 第 1 组:一个或多个单词字符(?:-|\.\w+$)
--
或.
+ 字符串末尾的 1 个或多个单词字符。
您可以使用
"${TM_FILENAME_BASE/([^-]+)(?:-|\.\w+$)/${1:/capitalize}/g}",
匹配包含除单词字符以外的字符的文件名,因为 [^-]+
匹配除 -
.
"${TM_FILENAME_BASE/(\w+)[-\.]|.+/${1:/capitalize}/g}",
参见regex101。