Visual Studio代码段变量转换无法正常工作

时间:2018-06-16 09:24:20

标签: visual-studio variables transform code-snippets

我正在尝试制作一个插入当前文件路径的最后两个directorys的代码段。

我的代码:

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

所以当Filepath是
"...\htdocs\projectname\src"
 输出应为
"projectname\src"
但相反,我得到了这个结果:
${TM_DIRECTORY/(.*)\\([a-zA-Z]+)\\([a-zA-Z]+)/$1/}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

问题

问题是代码将\\转换为\。例如,如果要编写\w,则必须在代码段中编写\\w

相同的方式。您必须在代码片段json中写入\\\\,以便它将转换为//

解决方案

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

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

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