5

我有这个:

${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}

如何使用downcasecapitalize在同一(2)组?

${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}

我想转换ZXC_ASDzxcAsd.

4

2 回答 2

6

试试这样:

"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}/

于 2018-07-10T21:16:06.340 回答
0

显然来到 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

于 2019-12-29T13:48:02.190 回答