我们有一个供应商在不使用查询字符串的情况下触发HTTP帖子。他们有效地以下列格式发布到我们的申请中:
www.mydomain.com/ourHandler/GroupId/ProductId/ItemId/CustomerId/
ourHandler
(或跟踪器)和GroupId
是唯一保证的值。其余的是完全可选的。最后的斜线也可能丢失。我被告知我需要满足“每秒数百次点击”。
所以我认为最好的选择可能是使用正则表达式(我吮吸)而不是string.split。
这是我得到的,但显然它不够好:
^(?<tracker>.\w*)?/(?<GroupId>\w*)?/(?<ProductId>\w)?/(?<ItemId>\w*)?(/)?(?<CustomerId>\w*)?
答案 0 :(得分:5)
为什么需要正则表达式? Uri类有一个Segments
属性
var uri = new Uri("http://www.mydomain.com/ourHandler/GroupId/ProductId/ItemId/CustomerId/");
var segments = uri.Segments;
//ourHandler/ <-- segments[1]
//GroupId/ <-- segments[2]