如何在 vscode 用户代码段中使用正则表达式 return 来自 TM_FILEPATH 的目录?
How to use Regex to return a directory from TM_FILEPATH in vscode user snippets?
我正在寻找一种方法来创建用户片段以从项目中获取核心目录。这是我使用的示例路径:
C:dev/Pseudope/Unreal/Cubicle/Source/CubicleCore/Private
创建 vscode 片段时 ${TM_FILEPATH}
将 return 此路径与正则表达式一起使用。我希望能够将这些片段用于不同的项目,这些项目都具有与上面的文件路径相同的结构,其中我想应用于片段的文本将始终嵌套在 Source 和 Private|Public 之间。这是我到目前为止的正则表达式:
(?<=Source\)(.*)(?=\Private|Public)
根据 https://regexr.com/,此表达式将以值“CubicleCore”为目标并将其分组到组 1 中。不幸的是,浏览器中的正则表达式与 vscode 正在解释它,因为我得到的结果是:
UE_LOG(Log${TM_FILEPATH/(?<=Source\)(.*)(?=\Private|Public)/}, Log, TEXT("Hello");
什么时候应该是:
UE_LOG(LogCubicleCore, Log, TEXT("Hello");
任何 help/direction 将不胜感激。
你可以使用
"UE_LOG(Log${TM_FILEPATH/.*Source[\\\/]([^\\/]+)[\\\/](?:Private|Public).*//}, Log, TEXT(\"Hello\")"
参见regex demo。
详情:
.*
- 尽可能多的任意零个或多个字符
Source
- Source
[\\/]
- /
或 \
([^\\/]+)
- 第 1 组 (</code>):除 <code>\
和 /
之外的任何一个或多个字符
[\\/]
- 一个 /
或 \
字符
(?:Private|Public)
- Private
或 Public
字符串
.*
- 尽可能多的任意零个或多个字符。
我正在寻找一种方法来创建用户片段以从项目中获取核心目录。这是我使用的示例路径:
C:dev/Pseudope/Unreal/Cubicle/Source/CubicleCore/Private
创建 vscode 片段时 ${TM_FILEPATH}
将 return 此路径与正则表达式一起使用。我希望能够将这些片段用于不同的项目,这些项目都具有与上面的文件路径相同的结构,其中我想应用于片段的文本将始终嵌套在 Source 和 Private|Public 之间。这是我到目前为止的正则表达式:
(?<=Source\)(.*)(?=\Private|Public)
根据 https://regexr.com/,此表达式将以值“CubicleCore”为目标并将其分组到组 1 中。不幸的是,浏览器中的正则表达式与 vscode 正在解释它,因为我得到的结果是:
UE_LOG(Log${TM_FILEPATH/(?<=Source\)(.*)(?=\Private|Public)/}, Log, TEXT("Hello");
什么时候应该是:
UE_LOG(LogCubicleCore, Log, TEXT("Hello");
任何 help/direction 将不胜感激。
你可以使用
"UE_LOG(Log${TM_FILEPATH/.*Source[\\\/]([^\\/]+)[\\\/](?:Private|Public).*//}, Log, TEXT(\"Hello\")"
参见regex demo。
详情:
.*
- 尽可能多的任意零个或多个字符Source
-Source
[\\/]
-/
或\
([^\\/]+)
- 第 1 组 (</code>):除 <code>\
和/
之外的任何一个或多个字符
[\\/]
- 一个/
或\
字符(?:Private|Public)
-Private
或Public
字符串.*
- 尽可能多的任意零个或多个字符。