You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中解析Microsoft Graph URL并提取user-id值?

解析Graph URL获取user-id值

我有如下URL字符串:

https://graph.microsoft.com/v1.0/groups/group-id/members/user-id/$ref

请问如何解析该URL字符串并获取user-id的值?

已知代码上下文:

var a = requestStep; //requestStep 是 Microsoft.Graph.BatchRequestStep 类型
var b = requestStep.Request.RequestUri;

其中变量b的取值为上述URL字符串。


方法一:通过Uri路径段拆分

利用Uri类的Segments属性拆分路径,直接定位到user-id所在的路径段:

// RequestUri本身就是Uri实例,直接赋值即可
Uri graphUri = b;
string[] pathSegments = graphUri.Segments;

// 根据URL结构,user-id位于第5个路径段(索引从0开始),去除末尾斜杠
string userId = pathSegments[5].TrimEnd('/');

注意:该方法依赖URL的固定结构,若路径层级发生变化(如API版本升级、路径调整),需要对应修改索引值。

方法二:正则表达式匹配

通过正则匹配members/和/$ref之间的内容,适配性更强:

using System.Text.RegularExpressions;

string urlString = b.ToString();
// 匹配members/与/$ref之间的任意非斜杠字符
Match userIdMatch = Regex.Match(urlString, @"members/([^/]+)/\$ref");

if (userIdMatch.Success)
{
    string userId = userIdMatch.Groups[1].Value;
    // 此处处理获取到的user-id
}

优势:只要URL保留members/{user-id}/$ref的结构,无论前面的路径如何变化,都能正确提取user-id。


内容的提问来源于stack exchange,提问作者user989988

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:25:30