2014-01-20 69 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