是否有任何類方法來測試兩個不同套的url是否相同?比較網址區分大小寫
這些是相同的:
- www.mysite.com
- Www.MYsite.COm
這些都是不一樣的:
- www.youtube。 com/v = AAAABBBB
- www.youtube.com/v=aaaaBBBB
編輯 我不認爲Uri類是足夠
這兩個是相同的鏈接
- stackoverflow.com/questions
- stackoverflow.com/QUESTIONS
是否有任何類方法來測試兩個不同套的url是否相同?比較網址區分大小寫
這些是相同的:
這些都是不一樣的:
編輯 我不認爲Uri類是足夠
這兩個是相同的鏈接
注www.youtube.com/v=ObgtZwwiKqg
是不正確的網址。正確的網址包含查詢符號,例如www.youtube.com/watch?v=ObgtZwwiKqg
。
如何忽略直到查詢的路徑並只比較查詢參數?如果您的網址中包含查詢?
,那麼您可以將所有內容剝離查詢。如果沒有,你至少可以用UriPartial.Authority
來剝離域名。
例如:
Uri a = new Uri("http://www.google.com/subdirectory?v=aaBB");
Uri b = new Uri("http://www.Google.com/SUBdirectory?v=AAbb");
string aParams = a.ToString().Replace(a.GetLeftPart(UriPartial.Path), String.Empty);
string bParams = b.ToString().Replace(b.GetLeftPart(UriPartial.Path), String.Empty);
if (aParams.Equals(bParams)) // with case
{
// they are equal
}
[最佳實踐](http://msdn.microsoft.com/en-us/library/dd465121(v = vs.110).aspx#recommendations_for_string_usage)建議使用String.Equals進行等式比較,而不是比較將String.Compare的值返回爲零。 – vvnurmi
需要使用Uri類,並檢查AbsolutePath財產
string url1 = "http://www.youtube.com/v=AAAABBBB";
string url2 = "http://www.youtube.com/v=aaaaBBBB";
Uri u1 = new Uri(url1);
Uri u2 = new Uri(url2);
if(string.Compare(u1.Host, u2.Host, StringComparison.CurrentCultureIgnoreCase) == 0)
{
if(u1.AbsolutePath == u2.AbsolutePath)
Console.WriteLine("Equals");
else
Console.WriteLine("Not equal path");
}
else
Console.WriteLine("Not equal host");
了'Uri'類打破了這一切,。只需挑選你想要的作品並進行比較。 –
小心:雖然stackoverflow.com/questions和stackoverflow.com/QUESTIONS可能指向相同的資源,但這在一般情況下並不正確。服務器上的路徑可能區分大小寫。 – nodots