我正在尝试编写一个代码段变量转换,该转换将从TM_FILEPATH
提供的路径中抽出特定的段。
TM_FILEPATH
:~/Projects/folder/Dir/tests/Unit/FooTest.php
我需要抓住Dir
。我正在尝试使用以下正则表达式:\/([^\/]*)\/tests
。
VS代码段转换:
${TM_FILEPATH/\\/([^\\/]*)\\/tests/$1/}
实际输出:
~/Projects/folderDir/Unit/FooTest.php
似乎该转换正在删除完全匹配的值,而不是用我需要的第一个匹配组替换变量。
答案 0 :(得分:1)
尝试:
"${TM_FILEPATH/.*\\/([^\\/]*)\\/tests.*/$1/}",
我要做的就是在您的正则表达式前后添加一个.*
。
关键点:对于摘要转换,如果变量的一部分未包含在要转换的部分中,则不会进行转换,因此最终得到了结果。
>${TM_FILEPATH/...part to be transformed.../$1/}
所以您的正则表达式很好,只是大多数变量没有“被信号通知”要转换,所以也没有。