我正在尝试将一个URL分割成一个对象。
$url = "https://api.somedomain.com/v2/direct-access/producing-entities-details?entity_id=104194825&format=json&page=1期望的结果将是
PS C:\WINDOWS\system32> $url.api
https://api.somedomain.com/v2/direct-access
PS C:\WINDOWS\system32> $url.dataset
producing-entities-details
PS C:\WINDOWS\system32> $url.params
entity_id=104194825&format=json&page=1 我确信这可以与正则表达式结合使用,但我也想知道是否可以仅使用内置的PowerShell功能来完成这项工作。
发布于 2018-12-14 00:53:34
不需要在正则表达式上浪费时间。[uri] type accelerator将为您完成其中一些工作。其他部分似乎特定于您选择如何解释数据,而不是URL解剖如何工作。
PS C:\Users\matt> $url = [uri]"https://api.somedomain.com/v2/direct-access/producing-entities-details?entity_id=104194825&format=json&page=1"
PS C:\Users\matt> $url.Query
?entity_id=104194825&format=json&page=1您可以探索其他属性,并了解它们对您有何帮助。例如,您可能需要构建分段以获取您正在寻找的其他部分。
PS C:\Users\matt> $url.Segments
/
v2/
direct-access/
producing-entities-details发布于 2019-06-01 01:46:17
$url = "https://api.somedomain.com/v2/direct-access/producing-entities-details?entity_id=104194825&format=json&page=1"
$uri = [System.Uri]$url
$ParsedQueryString = [System.Web.HttpUtility]::ParseQueryString($uri.Query)
$i = 0
$queryParams = @()
foreach($QueryStringObject in $ParsedQueryString){
$queryObject = New-Object -TypeName psobject
$queryObject | Add-Member -MemberType NoteProperty -Name Query -Value $QueryStringObject
$queryObject | Add-Member -MemberType NoteProperty -Name Value -Value $ParsedQueryString[$i]
$queryParams += $queryObject
$i++
}
$queryParams输出:
Query Value
----- -----
entity_id 104194825
format json
page 1https://stackoverflow.com/questions/53766303
复制相似问题