如何在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
相关产品推荐
相关产品推荐

