Регулярное выражение Powershell для захвата строки после новой строки - PullRequest
0 голосов
/ 17 апреля 2020

У меня самое сложное время с этим захватом регулярных выражений. По сути, я импортировал CSV, где скрипт читает текст в столбце и захватывает строку в тексте, помещая его в переменную. проблема у меня в том, что захват также захватывает возврат каретки. Как не захватить возврат каретки?

например, текст гласит:

check the following key:
HKLM:\Software\yadda\yadda

код:

if($file.col2 -match "following key:(?<path>\s*(\S+\s*\S+))"){
  $Matches['path']
}

1 Ответ

0 голосов
/ 17 апреля 2020

если ваша строка из двух строк помещается в $InStuff через что-то вроде Get-Content -Path $FullFileName -Raw, вы можете использовать параметр многострочного регулярного выражения (?m) и именованную группу захвата, чтобы поместить путь в $Matches.Path, как это ...

$InStuff = @'
check the following key:
HKLM:\Software\yadda\yadda
'@

$Null = $InStuff -match '(?m)(?<Path>.+:\\.+)$'
$Path = $Matches.Path

$Path

выход = HKLM:\Software\yadda\yadda

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