如何基于/将URL分为两部分

时间:2019-04-30 10:34:42

标签: regex powershell sharepoint split substring

我想根据/的数量将URl分为两部分

例如

输入:https://stackoverflow.com/questions/ask/wizard

现在根据第四个/进行拆分后,两个字符串将为

输出1:https://stackoverflow.com/questions
输出2:ask/wizard

3 个答案:

答案 0 :(得分:1)

.split()方法和-split运算符可以限制拆分次数。

因此分为5部分,为$Output1重新加入[0..3]并为$Output2获得基于零的索引[4]

## 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 :(得分:1)

这是完成这项工作的另一种方法。 [咧嘴]它的作用...

  • 使用[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

答案 2 :(得分:0)

尝试这个:

"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'

=>询问/向导