如何查找除某些查询字符串以外的匹配URL?

时间:2009-08-04 14:51:36

标签: c# asp.net .net-3.5

我使用HTTP资源的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

但是,我有第三个不应区分资源的查询参数(在服务器端,它从数据库中提取相同的数据)。

这些是相同的(组和检查安全参数是相同的):

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。

1 个答案:

答案 0 :(得分:0)

您可以拆分以获取查询字符串,然后拆分以获取每个组,查看是否所有组都具有相同数量的组(按组我的意思是“变量=值”)。分别分析每个小组并消除那些不关心的小组。

然后,它更容易分析。这是一些想法

  • 将每个组放入一个List并对其进行排序(然后迭代以查看它们是否相同
  • 将每个组放入一个Set中,并检查Union是否等于单独设置。
  • 使用Uri和UriBuilder执行此过程,并在删除“无关”组后使用它们进行匹配验证

- 编辑包括Nick Berardi的建议