Visual Studio 代码片段变量转换不工作

Visual Studio Code Snippet Variable Transform not working

我正在尝试制作一个插入当前文件路径的最后两个目录的片段。

我的代码:

${TM_DIRECTORY/\(.*)\([a-zA-Z]+)\([a-zA-Z]+)/\/}

所以当文件路径是
"...\htdocs\projectname\src"
输出应该是
"projectname\src"
但是我得到了这个结果:
${TM_DIRECTORY/(.*)\([a-zA-Z]+)\([a-zA-Z]+)//}

我做错了什么?

问题:

问题是代码将 \ 转换为 \。例如,如果你想写 \w,那么你必须在片段中写 \w

同理..你必须在片段json中写\\,这样它就会转换成//.

解决方法:

  1. ${TM_DIRECTORY/.*?\\([a-zA-Z]+\\[a-zA-Z]+)$//}

或者,我认为您应该使用 \w 而不是 [a-zA-Z],因为目录名称可以包含一些字符,例如 -_

  1. ${TM_DIRECTORY/.*?\\(\w+\\\w+)$//}