Vscode 片段:使用正则表达式将文件名转换为大写句子
Vscode snippet: tranform filename to Capitalize sentence with a regex
我想在 Vscode 片段中将 filename-with-dashes.md
转换为 Filename with dashes
准确地说,我想从类似于 firt-post-ever.md
的文件名填充此代码段中的字段 "title"
并获取 First post ever
:
"FrontMatter": {
"scope": "markdown",
"prefix": "frontmatter",
"body": [
"---",
"title: '${TM_FILENAME_BASE/^([^-]*)-([^.]*).*/${1:/pascalcase} ${2:/capitalize}/}'",
"draft: true",
[...]
我目前有什么:
此正则表达式将 filename-with-dashes.md
更改为 Filename with-dashes
(← 最后我仍然需要删除破折号):
${TM_FILENAME_BASE/^([^-]*)-([^.]*).*/${1:/pascalcase} ${2:/downcase}/}
我查看的资源:
- https://code.visualstudio.com/docs/editor/userdefinedsnippets#_grammar
- VSCode Keybinding Snippet: Use TM_SELECTED_TEXT to Remove All Slashes From A Selected String
- Transform and regex in Code Snippets in VSCode - Docs
不幸的是,这些页面不足以找到正确的答案(我无法理解正则表达式的语法,尽管付出了很大的努力我还是无法理解..)有什么提示吗?
备注:
- 只有整个标题的第一个字母必须大写
- 文件名可以包含点(例如:notes-for-dev.to-update-2022.md).
在这种情况下只需要删除文件扩展名
这是一个有效的片段:
"FrontMatter": {
"scope": "markdown",
"prefix": "frontmatter",
"body": [
"---",
"title: '${TM_FILENAME_BASE/(^\w*)|(-)/${1:/pascalcase}${2:+ }/g}'",
// if other words might have caps you don't want
"title: '${TM_FILENAME_BASE/(^\w+)|(\w+)|(-)/${1:/pascalcase}${3:+ }${2:/downcase}/g}'",
"draft: true"
]
}
(^\w+)
获取捕获组 1 中的第一个“单词”
(\w+)
获取捕获组 2 中的任何其他词
(-)
获取捕获组 3 中的任何 -
。
${1:/pascalcase}
第一个单词首字母大写,第一个单词其余字母小写
${3:+ }
如果有第 3 组,添加一个 space - 从而用 spaces 替换任何 -
。
我想在 Vscode 片段中将 filename-with-dashes.md
转换为 Filename with dashes
准确地说,我想从类似于 firt-post-ever.md
的文件名填充此代码段中的字段 "title"
并获取 First post ever
:
"FrontMatter": {
"scope": "markdown",
"prefix": "frontmatter",
"body": [
"---",
"title: '${TM_FILENAME_BASE/^([^-]*)-([^.]*).*/${1:/pascalcase} ${2:/capitalize}/}'",
"draft: true",
[...]
我目前有什么:
此正则表达式将 filename-with-dashes.md
更改为 Filename with-dashes
(← 最后我仍然需要删除破折号):
${TM_FILENAME_BASE/^([^-]*)-([^.]*).*/${1:/pascalcase} ${2:/downcase}/}
我查看的资源:
- https://code.visualstudio.com/docs/editor/userdefinedsnippets#_grammar
- VSCode Keybinding Snippet: Use TM_SELECTED_TEXT to Remove All Slashes From A Selected String
- Transform and regex in Code Snippets in VSCode - Docs
不幸的是,这些页面不足以找到正确的答案(我无法理解正则表达式的语法,尽管付出了很大的努力我还是无法理解..)有什么提示吗?
备注:
- 只有整个标题的第一个字母必须大写
- 文件名可以包含点(例如:notes-for-dev.to-update-2022.md).
在这种情况下只需要删除文件扩展名
这是一个有效的片段:
"FrontMatter": {
"scope": "markdown",
"prefix": "frontmatter",
"body": [
"---",
"title: '${TM_FILENAME_BASE/(^\w*)|(-)/${1:/pascalcase}${2:+ }/g}'",
// if other words might have caps you don't want
"title: '${TM_FILENAME_BASE/(^\w+)|(\w+)|(-)/${1:/pascalcase}${3:+ }${2:/downcase}/g}'",
"draft: true"
]
}
(^\w+)
获取捕获组 1 中的第一个“单词”
(\w+)
获取捕获组 2 中的任何其他词
(-)
获取捕获组 3 中的任何 -
。
${1:/pascalcase}
第一个单词首字母大写,第一个单词其余字母小写
${3:+ }
如果有第 3 组,添加一个 space - 从而用 spaces 替换任何 -
。