2009-08-04 4 views
1

HTTPリソースのURLをリソースの一意の識別子として使用しています(驚き)。特定のクエリ文字列以外の一致するURLを見つけるにはどうすればよいですか?

これらはすべて異なっている:

http://localhost/Docs/SomeDocument?group=33&checksafety=true 
http://localhost/Docs/SomeDocument?group=11&checksafety=true 
http://localhost/Docs/SomeDocument?group=11&checksafety=false 

はしかし、私はリソースを区別するべきではない第三クエリパラメータを持っている(サーバー側では、データベースから同じデータを引っ張ります)。

これらは、(グループとchecksafetyパラメータが同じである)同じです。

http://localhost/Docs/SomeDocument?group=11&checksafety=false&rendergroup=A 
http://localhost/Docs/SomeDocument?group=11&checksafety=false&rendergroup=B 
http://localhost/Docs/SomeDocument?rendergroup=C&group=11&checksafety=false 

は、ここでは、正規表現の適切ですか?

良い方法がありますか?

私はC#、.NET 3.5、およびASP.NETを使用しています。

+0

ます。http:// localhostの/ドキュメント/ SomeDocum group = 33&checksafety = trueおよび http:// localhost/Docs/SomeDocument?checksafety = true&group = 33は異なるのですか? –

+0

@ samuelcarrijo - 同じではありません。 –

答えて

0

分割してクエリ文字列を取得し、分割して各グループを取得し、それらのグループのすべてが同じ数のグループを持っているかどうかを調べることができます(グループは「変数=値」を意味します)。個々のグループを個別に分析し、気にしないグループを排除します。

次に、解析が簡単です。ここではリストと注文それに各グループを置くいくつかのアイデア

  • ある(その後、彼らは
  • 同じである場合、セットに各グループを入れて、連合は個別に等しい設定されているかどうかをチェック確認するために反復します。
  • ウリとUriBuilderを使用して、この処理を行うと、「無関係」グループに

--editを削除した後、一致検証のためにそれらを使用するが、ニックBERARDI提案を含め

+1

私はそれを分割についてあなたに同意します。しかし、私はそれをSystem.Uriに入れ、UriBuilderを使ってUriを作成することでそれを行います。これで簡単にQueryStringプロパティを取得し、好きでない変数を "&"で削除してから再構築します。特にUriBuilderについて言及した唯一の理由は、あなた自身で文字列を再構成する必要がないからです。 –

+0

これは別の言葉を使って同じことですか...私の心は残業しています: 1)不要な "グループ"を分割して削除し、アルファベット順にグループを追加して各URLのクエリー文字列を書き換えてから、小文字を比較してくださいURL文字列のバージョン? –

+0

これもうまくいくでしょう。しかし、必ずしもソートする必要はありません(代わりにSetを使用する場合) –

関連する問題