VSCode Regex Snippet - PullRequest
       37

VSCode Regex Snippet

0 голосов
/ 05 июня 2018

Я пытаюсь написать фрагмент VSCode для заполнения пути удаленного репо, используя локальный путь репо Windows в качестве основы, но немного борюсь с синтаксисом, кто-нибудь может помочь?

"MetaData Snippet": {
    "prefix": "META",
    "body": [
      "<#",
      "    .SYNOPSIS",
      "        ${1:Enter general synopsis of the type of script}",
      "",
      "    .DESCRIPTION",
      "        ${2:Short description of what the script will do}",
      "",
      "    .PARAMETER ${3:ParameterNameHere}",
      "        ${4:Description of the parameter}",
      "",
      "    .EXAMPLE",
      "        ${5:Example of how to use the code and also expected output}",
      "",
      "    .NOTES",
      "        VSTS:   ${7:$TM_FILEPATH/(.)(:\\)(.*)(\\TSO NH)//g}",
      "",
      "        | Author            | QC                | VSTS Story ID     | Release Date  |",
      "        -----------------------------------------------------------------------------",
      "        | ${8:Author Name}  | ${9:Name of reviewer} | ${10:Story Number} | $CURRENT_DATE/$CURRENT_MONTH/$CURRENT_YEAR_SHORT      |",
      "#>"
    ],
    "description": "MetaData Snippet"
  }

ПРИМЕР ПУТИ:c:\Users\USERNAME\git\Cloud and Automation\.vscode\test.ps1

По сути, я хочу вырезать c:\Users\USERNAME\git\ и остаток, который я хочу заменить \ символов на /.

Я знаю, что мой синтаксис неправильный, но я 'я не уверен, что достаточно хорошо понимаю регулярные выражения и не могу понять: (

Подводя итог, хочу превратить:

c:\Users\USERNAME\git\Cloud and Automation\.vscode\test.ps1 

в:

Cloud and Automation/.vscode/test.ps1 

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Попробуйте:

"${TM_DIRECTORY/.*\\\\(.*)\\\\(.*)$/$1\\/$2/}/${TM_FILENAME}"

и увидите экранирование во фрагментах vscode .У вас есть . там для .vscode, поэтому вам, возможно, придется учесть и это - просто добавьте экранированный период ко второй группе захвата (\..*) или более обратной косой черты, но вам это может вообще не понадобиться.

0 голосов
/ 05 июня 2018

Хотя это в python, а не VS, вы можете увидеть регулярное выражение в действии.В соответствии с запросом OP в комментариях, здесь приведен пример на python.

import re

data = r"c:\Users\USERNAME\git\Cloud and Automation\.vscode\test.ps1"
path = re.sub(r".*git\\", "", data)   #strip up to git
fixed_path = re.sub(r"\\", "/", path) #replace backslashes with slashes
print(fixed_path)

Обратите внимание, что я избегаю \, который может быть частью того, с чем вы сталкиваетесь.Я предпочитаю обрезать строку вместо того, чтобы пытаться захватить ее части, иногда просто так проще:)

Вывод:

Cloud and Automation/.vscode/test.ps1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...