我有这个:
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}
如何使用downcase
和capitalize
在同一(2)组?
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}
我想转换ZXC_ASD
为zxcAsd
.
我有这个:
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}
如何使用downcase
和capitalize
在同一(2)组?
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}
我想转换ZXC_ASD
为zxcAsd
.
试试这样:
"camelCaseSnail": {
"scope": "javascript,typescript",
"prefix": "log",
"body": "${1/([A-Z]*)(?:_)(?:([A-Z])([A-Z]+))*/${1:/downcase}${2:/capitalize}${3:/downcase}/g}"
}
基本上,我已将第二个捕获组更改为([A-Z]+)*
具有两个内部捕获组的非捕获组(?:([A-Z])([A-Z]+))*
,一个用于驼峰式大小写的字母和其余字母,我在替换/转换部分中提到:/downcase}${2:/capitalize}${3:/downcase}/
显然来到 vscode v1.58 是一个/camelcase
修饰符。所以你的案子很简单
"${1/(.*)/${1:/camelcase}/}"
在 Insiders Build 中测试。请参阅为片段变量添加 camelCase 变换。另请参阅https://stackoverflow.com/a/51228186/836330以获取另一个示例。
老答案:
使用未记录的(参见片段正则表达式:匹配任意数量的组并转换为 CamelCase)/pascalcase
转换,这很容易:
"${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/pascalcase}/g}"
就像/pascalcase
意志同时做的/capitalize
那样/downcase
。