首页 > 解决方案 > 如何将 URL 字符串拆分/解析为对象?

问题描述

我正在尝试将 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 功能来完成。

标签: stringpowershellobjecturl

解决方案


无需乱用正则表达式。[uri]类型加速器将为您完成其中的一些工作。其他部分似乎特定于您选择解释数据的方式,而不是 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

您可以探索其他属性,看看它们将如何帮助您。例如,您可能需要构建 Segments 以获得您正在寻找的其他部分。

PS C:\Users\matt>   $url.Segments
/
v2/
direct-access/
producing-entities-details

推荐阅读