温馨提示:本文翻译自stackoverflow.com,查看原文请点击:regex - Can I exclude Positive Lookaheads and Lookbehinds within a snippet in vscode?
regex visual-studio-code vscode-snippets

regex - 我可以在vscode的代码段中排除正向前瞻和回溯吗?

发布于 2020-03-27 11:56:08

我在排除VSCode代码段中的字符串部分时遇到问题。本质上,我想要的是路径的特定部分,但是我无法获取正则表达式来排除需要排除的内容。

我最近问了一个关于类似问题的问题,您可以在这里找到类似的问题:除了使用TM_FILENAME_BASE之外,还有没有办法修剪TM_FILENAME?

如您所见,我主要是通过片段在vscode中的工作方式来了解问题,而不是正则表达式本身

${TM_FILEPATH/(?<=area)(.+)(?=state)/${1:/pascalcase}/}

给定一个看起来像的文件路径 abc/123/area/my-folder/state/...

预期:

/MyFolder/

实际:

abc/123/areaMyFolderstate/...

查看更多

查看更多

提问者
kbDS
被浏览
219
Wiktor Stribiżew 2019-07-03 23:34

您需要匹配整个字符串以实现以下目的:

"${TM_FILEPATH/.*area(\\/.*?\\/)state.*/${1:/pascalcase}/}"

正则表达式演示

细节

  • .* -除换行符外的任意0+个字符
  • area-一个字- (\\/.*?\\/)-第1组:/除换行符字符以外的任何字符0+,尽可能少,和/ - state.*- state串与行的其余部分。

注意:如果和之间必须没有其他子部分,则或什areastate替换.*?[^\\/]*[^\\/]+