Try this:
export class ${TM_FILENAME_BASE/^([^.]*).*/${1:/pascalcase}$2/}Input {}"
Your first capture group is everything up to the first .
.
Then you need to match everything else .*
will match .dto
(and don't replace it with anything since you don't want it in your result).
You do not need a second capture group but the previous version I showed did have a capture group 2 (but it wasn't transformed) and it looked like:
export class ${TM_FILENAME_BASE/^(.)([^.]*).*/${1:/upcase}$2/}Input {}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…