Получить совпадающие строки в переменной - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь получить соответствующие строки из переменной.

Например,

$out = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{F1E1501C-B95C-42E0-BFD4-757DF1B961D1}"

Мне нужно значение внутри "{ }".

1 Ответ

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

Вы можете использовать RegEx для этого:

$out = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall{F1E1501C-B95C-42E0-BFD4-757DF1B961D1}"

$out -match "^.*{(?<guid>.*)}$" | Out-Null

Затем вы можете получить доступ к значению, как это:

$matches.Guid

-match производит bool, который сообщает вам, был ли он успешным или нет. Здесь я откажусь от него, отправив его на Out-Null, но вы можете использовать его, чтобы решить, следует ли вам продолжить, скажем, завернув его в if:

if ($out -match "^.*{(?<guid>.*)}$")
{
   # Do something
}

Обратите внимание, что вы можете получить более точное соответствие для GUID, используя шаблоны, упомянутые здесь:

RegEx для GUID

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