2014-01-20 102 views
-3

我從URL中提取域如下:如何從域名獲取網站名稱?

var uri = new Uri("Http://www.google.com"); 
var host = uri.Host; 
//host ="www.google.com" 

但我想只有在主機google.com,

host = "google.com" 
+0

你可以手動做 – andy

+1

但是,URL的子域是不是「www」。你想保留還是丟棄它?例如,「espn.go.com」。 – psubsee2003

回答

2

如果host開始"www.",你可以用一個空字符串替換"www."使用String.Replace Method像這樣:

var uri = new Uri("Http://www.google.com"); 
var host = uri.Host.ToLower(); 
if (host.StartsWith("www.")) 
{ 
    host = host.Replace("www.", ""); 
} 
3

鑑於接受的答案我猜這個問題不知道如何操縱字符串,而不是如何處理uris ......但是對於任何最終在這裏的人:

Uri類沒有這個屬性,所以你將不得不自己解析它。

大概你不知道子域是在什麼時間之前,所以一個簡單的替換可能是不可能的。

這不是微不足道的,因爲TLD如此多變(http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains),並且可能存在多個網址部分(例如http://pre.subdomain.domain.co.uk)。

你將不得不決定你想要得到什麼以及你想要解決方案有多複雜。

簡單 - 做一個字符串替換,請參閱ekad的答案

中 - 正則表達式,工程的大部分時間,看到Strip protocol and subdomain from a URL

或複雜的 - 是指後綴的列表,以便弄清楚什麼是子域和什麼是域,例如 Get the subdomain from a URL