Нужна помощь в извлечении и разбивке URL для разделения переменных - PullRequest
1 голос
/ 27 мая 2019

У меня есть один необработанный ввод от конечного пользователя в переменную, как показано ниже javascript:DS('https://HS/v1/dev/A/Machinename/SNAPNAME','XXXXX')

  1. Я хочу извлечь URL из вышеуказанного ввода.
  2. Я хочу разделитьURL, использующий / для входа в переменную.

Ввод:

$DSURL = "javascript:DS('https://HS/v1/dev/A/Machinename/SNAPNAME','XXXXX')"


[regex]$regex = '(?<=https:\/\/\HS\\/v1\/dev\/A\?t=)(.*)(?=' )'

$regex.Matches($DSURL).Value

$ 1 = https://HS/v1/dev/A/Machinename/SNAPNAME $ 2 = Machinename $ 3= SNAPNAME

Но это не работает, я думаю, что используемое регулярное выражение неверно, Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Мне удалось вытащить это, и он правильно выбирает выходной URL.

$text = "javascript:DS('https://HS/v1/dev/A/Machinename/SNAPNAME','XXXXX')"
($text | Select-String -Pattern @"
(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
"@).Matches.Value

ВЫХОД:

https://HS/v1/dev/A/Machinename/SNAPNAME','XXXXX

Надеюсь, это поможет.

0 голосов
/ 27 мая 2019

здесь используется ускоритель типа [uri] для преобразования строки uri в объект uri . затем он использует свойство .Segments, чтобы захватить два последних сегмента и поместить их в $ Vars.

Вы можете посмотреть различные свойства, хранящиеся в переменной $UriObject, для получения другой интересной информации. [ ухмылка ]

$DSUrl = "javascript:DS('https://HS/v1/dev/A/SpiffyDoodleServer/SomeSortOfThing','XXXXX')"

$CleanedDSU = $DSUrl.Split('(')[1].Split(',')[0].Trim("'")
$UriObject = [uri]$CleanedDSU

$MachineName = $UriObject.Segments[-2].Trim('/')
$SnapName = $UriObject.Segments[-1]

$DSUrl
$CleanedDSU
$MachineName
$SnapName

вывод ...

javascript:DS('https://HS/v1/dev/A/SpiffyDoodleServer/SomeSortOfThing','XXXXX')
https://HS/v1/dev/A/SpiffyDoodleServer/SomeSortOfThing
SpiffyDoodleServer
SomeSortOfThing
...