Snippet正则表达式:匹配任意数量的组并转换为CamelCase

Dar*_*rya 3 regex camelcasing visual-studio-code vscode-snippets

在我正在编写的Visual Studio代码片段中,我想将蛇案例字符串转换为驼峰案例.

文档我知道语法是

'regex'

所以我想出了这个:

'format'

然而,此代码仅适用于具有2个元素的字符串(例如"carrot_cake"),而我希望处理具有任意数量元素的字符串("blueberry_pie_with_a_cup_of_coffee").

我想在'regex'和中需要某种递归'format',但我不知道该怎么做.

如何匹配任意数量的模式出现?

Mar*_*ark 7

要将任意数量的"_"分隔单词转换为CamelCase,请尝试:

"camelCase": {
    "prefix": "_cc",
    "body": [
            // "${TM_FILENAME_BASE/([a-z]*)_+([a-z]*)/${1:/capitalize}${2:/capitalize}/g}"

            "${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g}"
        ],
        "description": "Transform to camel case"
    },
Run Code Online (Sandbox Code Playgroud)

/pascalcase - > /pascalcase

some_file => SomeFile - > carrot_cake.txt

[我假设CamelCase是你想要的形式,还有其他的,比如camelCase.]

对于camelCase:

"${TM_FILENAME_BASE/([a-z]*)_*([a-z]*)/$1${2:/capitalize}/g}"
Run Code Online (Sandbox Code Playgroud)

请注意,最后的"g"标志正在为您完成大部分工作,但是除了明确捕获的两个匹配之外还有许多匹配.

CarrotCake像你一样离开了捕获组.您可能希望使用blueberry_pie_with_a_cup_of_coffee.js更多的灵活性.