在 VS 代码片段中省略最后一个点字符及其后的所有内容
Omit last dot character and everything thereafter in VS code snippet
我的目标是转化
my-app/templates/components/one-directory/a-second-directory/third.hbs
至
<OneDirectory::ASecondDirectory::Third />
下面的代码片段完成了我需要的一切,除了删除扩展名,所以上面的例子导致 <OneDirectory::ASecondDirectory::ThirdHbs />
"Path to Angle Bracket": {
"prefix": "path-to-angle",
"body": [
"<${TM_SELECTED_TEXT/.+components\/|([^\/]+)|(\/)/${1:/pascalcase}${2:+::}/g}/>",
],
"description": "Converts a file path to an angle bracket component invocation."
}
我希望能够在不知道它是什么的情况下删除扩展名 - 所以基本上删除最后一个 .
字符之后的所有内容。
正则表达式可以分解如下:
.+components\/
- 匹配 components/
的第一个实例之前的所有内容。因为它不是捕获组的一部分,所以结果中省略了它。
([^\/]+)
- 第一个捕获组。一个或多个不是 /
.
的任何字符
(\/)
- 第二个捕获组 - 任何 /
${1:/pascalcase}
- 将第一个捕获组的匹配项转换为 Pascal 大小写。
${2:+::}
- 将第二个捕获组的匹配项转换为 ::
.
试试这个:
"<${TM_SELECTED_TEXT//.+components\/|([^(\/.\s)]+)|(\/)|(.*)/${1:/pascalcase}${2:+::}/g} />",
见https://regex101.com/r/snLmCK/2
[并感谢您使用 :/pascalcase
]
我的目标是转化
my-app/templates/components/one-directory/a-second-directory/third.hbs
至
<OneDirectory::ASecondDirectory::Third />
下面的代码片段完成了我需要的一切,除了删除扩展名,所以上面的例子导致 <OneDirectory::ASecondDirectory::ThirdHbs />
"Path to Angle Bracket": {
"prefix": "path-to-angle",
"body": [
"<${TM_SELECTED_TEXT/.+components\/|([^\/]+)|(\/)/${1:/pascalcase}${2:+::}/g}/>",
],
"description": "Converts a file path to an angle bracket component invocation."
}
我希望能够在不知道它是什么的情况下删除扩展名 - 所以基本上删除最后一个 .
字符之后的所有内容。
正则表达式可以分解如下:
.+components\/
- 匹配 components/
的第一个实例之前的所有内容。因为它不是捕获组的一部分,所以结果中省略了它。
([^\/]+)
- 第一个捕获组。一个或多个不是 /
.
(\/)
- 第二个捕获组 - 任何 /
${1:/pascalcase}
- 将第一个捕获组的匹配项转换为 Pascal 大小写。
${2:+::}
- 将第二个捕获组的匹配项转换为 ::
.
试试这个:
"<${TM_SELECTED_TEXT//.+components\/|([^(\/.\s)]+)|(\/)|(.*)/${1:/pascalcase}${2:+::}/g} />",
见https://regex101.com/r/snLmCK/2
[并感谢您使用 :/pascalcase
]