我正在尝试为VS Code创建一个基于“Section”名称创建标签的代码段:
"Headings | Section": {
"prefix": "sec",
"body": [
"\\section{${1:section_name}} % (fold)",
"\t\\label{sec:${2:${1/([^a-zA-Z0-9]+)/_/g}}}",
"\t$0"
],
"description": "Create a new section with an automatically generated label"
},
删除非字母数字字符和用下划线替换空格都很好,但我正在尝试(目前无法)也使标签小写(\downcase)。
我尝试过实现各种变体,例如:
"\t\\label{sec:${2:${1/([^a-zA-Z0-9]+)/_/g}${1/(.)/${1:/downcase}/g}}}",
但没有得到想要的结果。
1条答案
按热度按时间zlhcx6iw1#
我想这就是你要找的东西--下写
$1
的第二个示例:${1/([^\\s])|(\\s)/${1:/downcase}${2:+_}/g}
这将获取捕获组1中的所有非空白字符和捕获组2中的所有空白字符。所有第1组都将被降级。
如果有一个组2,它将被替换为下划线,因为
${2:+_}
是一个有条件的替换,你可以把它放在片段中,说如果组2插入一个_
。