2012-12-02 32 views
0

我们有一个供应商在不使用查询字符串的情况下触发HTTP帖子。它们有效地发布到我们的应用程序的格式如下:带有多个可选分组的正则表达式

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

ourHandler(或跟踪器)和GroupId是唯一的保证值。其余完全是可选的。最后的斜线也可能会丢失。我被告知我需要迎合“每秒数百次点击”。

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

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

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

什么是你的问题? – migg

回答

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] 
+0

传奇!谢谢L.B! – Madabitjer