片段 VS 代码正则表达式

Snippets VS Code Regex

我需要你的帮助,我正在构建一个片段,但我需要转换这个文件的路径:

D:\Project\test\src\EnsLib\File\aaa\bbb

我需要它是这样的:

EnsLib\File\aaa\bbb

让我从“SRC”向前,用点替换 \。

Example: D:\Project\test\src\EnsLib\File\aaa\bbb

Result: EnsLib.File.aaa.bbb

始终以 src 文件夹为起点

我的测试正则表达式是这些:

"${TM_DIRECTORY/(.*\\{4})//}",
"${TM_DIRECTORY/.*src\\(.*)\\(.*)$/./}.${TM_FILENAME_BASE}",
// "${TM_DIRECTORY/.*\\(.*)\\(.*)$/./}.${TM_FILENAME_BASE}",
// "${RELATIVE_FILEPATH/\D{4}(\W)\..+$//g}",
// "${TM_DIRECTORY/(.*src\\)//g}.${TM_FILENAME_BASE}",
// "${RELATIVE_FILEPATH/(\D{3})\W|(\..+$)/./g}",
// "${RELATIVE_FILEPATH/\W/./g}",

看来你想要

"${TM_DIRECTORY/^.*?\\src\\|(\\)/${1:+.}/g}"

正则表达式是 ^.*?\src\|(\),它匹配

  • ^ - 字符串开头
  • .*? - 除换行字符外的任何零个或多个字符,尽可能少
  • \src\ - \src\ 字符串
  • | - 或
  • (\) - 第 1 组 (</code>):一个 <code>\ 字符。

如果第 1 组匹配,则替换为 .,否则,替换为空字符串,即从字符串开头到 \src\ 的文本被简单地删除。