我想根据/
的数量将URl分为两部分
例如
输入:https://stackoverflow.com/questions/ask/wizard
现在根据第四个/
进行拆分后,两个字符串将为
输出1:https://stackoverflow.com/questions
输出2:ask/wizard
答案 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
这是代码...
$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'
=>询问/向导