我在排除VSCode代码段中的字符串部分时遇到问题。本质上,我想要的是路径的特定部分,但是我无法获取正则表达式来排除需要排除的内容。
我最近问了一个关于类似问题的问题,您可以在这里找到类似的问题:除了使用TM_FILENAME_BASE之外,还有没有办法修剪TM_FILENAME?
如您所见,我主要是通过片段在vscode中的工作方式来了解问题,而不是正则表达式本身
${TM_FILEPATH/(?<=area)(.+)(?=state)/${1:/pascalcase}/}
给定一个看起来像的文件路径 abc/123/area/my-folder/state/...
预期:
/MyFolder/
实际:
abc/123/areaMyFolderstate/...
您需要匹配整个字符串以实现以下目的:
"${TM_FILEPATH/.*area(\\/.*?\\/)state.*/${1:/pascalcase}/}"
细节
.*
-除换行符外的任意0+个字符area
-一个字- (\\/.*?\\/)
-第1组:/
除换行符字符以外的任何字符0+,尽可能少,和/
- state.*
- state
串与行的其余部分。注意:如果和之间必须没有其他子部分,则用或什area
至state
替换。.*?
[^\\/]*
[^\\/]+