0

我们有一个供应商在不使用查询字符串的情况下触发 HTTP 帖子。他们以以下格式有效地发布到我们的应用程序:

www.mydomain.com/ourHandler/GroupId/ProductId/ItemId/CustomerId/ 

ourHandler(或 Tracker)并且GroupId是唯一的保证值。其余的完全是可选的。最后的斜线也可能丢失。有人告诉我,我需要满足“每秒数百次点击”的需求。

所以我认为最好的选择可能是使用正则表达式(我很讨厌)而不是 string.split。

这是我得到的,但显然还不够好:

^(?<tracker>.\w*)?/(?<GroupId>\w*)?/(?<ProductId>\w)?/(?<ItemId>\w*)?(/)?(?<CustomerId>\w*)?
4

1 回答 1

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] 
于 2012-12-02T18:00:32.313 回答