0

クエリ文字列を使用せずに HTTP 投稿を開始するサプライヤがあります。事実上、彼らは次の形式でアプリケーションに投稿します。

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

ourHandler(またはトラッカー) でGroupIdあり、唯一の保証値です。残りは完全にオプションです。末尾のスラッシュも欠落している可能性があります。「1秒間に数百回のヒット」に対応する必要があると言われました。

したがって、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 に答える