Как разделить URL на две части на основе / - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу разделить URl на две части на основе числа /

Например

Ввод: https://stackoverflow.com/questions/ask/wizard

теперь после разделения на основе 4-го / две строки будут

Выход1: https://stackoverflow.com/questions
Выход2: ask/wizard

Ответы [ 3 ]

1 голос
/ 30 апреля 2019

Метод .split(), а также оператор -split могут ограничивать количество разбиений.

Итак, разбейте на 5 частей, воссоединитесь с [0..3] для $Output1 и получите ноль на основеиндекс [4] для $Output2

## Q:\Test\2019\04\30\SO_5519104.ps1

$URL = 'https://stackoverflow.com/questions/ask/wizard'
$Output1 = $URL.Split('/',5)[0..3] -join '/'
$Output2 = $URL.Split('/',5)[4]

> Get-Variable Output[12]

Name                           Value
----                           -----
Output1                        https://stackoverflow.com/questions
Output2                        ask/wizard
1 голос
/ 30 апреля 2019

вот еще один способ сделать работу. [ ухмыляется ] что он делает ...

  • использует ускоритель типа [uri] для преобразования строки URL в [uri] объект
  • берет последний $Part_2_Segments из этого и соединяет их обратно в строку
  • удаляет $Output_2 из исходной строки
  • удаляет остатки на конце \ или / с конца $Output_1
    спасибо LotPings за оповещение об этом. [ ухмылка ]
  • отображает две результирующие строки

вот код ...

$URL_String = 'https://stackoverflow.com/questions/ask/wizard'

$Part_2_Segments = 2

$Output_2 = -join ([uri]$URL_String).Segments[-$Part_2_Segments..-1]
$Output_1 = $URL_String.Replace($Output_2, '').Trim('\/')

$Output_1
$Output_2

вывод ...

https://stackoverflow.com/questions
ask/wizard
0 голосов
/ 30 апреля 2019

Попробуйте это:

"https://stackoverflow.com/questions/ask/wizard" -replace '^([a-zA-Z:\.]*/[a-zA-Z:\.]*/[a-zA-Z:\.]*/[a-zA-Z:\.]*)/(.*$)', '$1'

=> https://stackoverflow.com/questions

"https://stackoverflow.com/questions/ask/wizard" -replace '^([a-zA-Z:\.]*/[a-zA-Z:\.]*/[a-zA-Z:\.]*/[a-zA-Z:\.]*)/(.*$)', '$2'

=> спросить / волшебник

...