VS 代码片段转换

问题描述

文件名当前为 filename.dto.ts

我正在尝试将 filename.dto.ts 转换为 FilenameInputFilenameOutput

但是,这似乎不是使用正则表达式选择第二组的方法

如何正确选择第二个正则表达式组并对其进行转换?

export class ${TM_FILENAME_BASE/^(.)|(.dto)$/${1:/upcase}$2/}Input {}
export class ${TM_FILENAME_BASE/(.dto)//}Output {}`

解决方法

试试这个:

export class ${TM_FILENAME_BASE/^([^.]*).*/${1:/pascalcase}$2/}Input {}"

您的第一个捕获组是第一个 . 之前的所有内容。

然后您需要匹配其他所有内容 .* 将匹配 .dto(并且不要将其替换为任何内容,因为您不希望它出现在结果中)。

您不需要第二个捕获组,但我展示的前一个版本确实有一个捕获组 2(但它没有转换),它看起来像:

export class ${TM_FILENAME_BASE/^(.)([^.]*).*/${1:/upcase}$2/}Input {}