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

Учитывая принятый ответ я догадывался проблема была не в том, чтобы знать, как манипулировать строками, а не как бороться с урисом ... но для всех, кто попадает сюда:

Класс Uri не обладает этим свойством, поэтому вам придется самому разобрать его.

Предположительно, вы не знаете, что такое субдомен до времени, поэтому простая замена может оказаться невозможной.

Это не так просто, потому что TLD настолько разнообразны (http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains), и может быть несколько частей к URL (например, http://pre.subdomain.domain.co.uk).

Вам нужно будет решить, что именно вы хотите получить, и насколько сложным вы хотите решение.

просто - строка замены, см ответ ekad в

среда - регулярное выражение, которое работает большую часть времени, см Strip protocol and subdomain from a URL

или комплекс - обратитесь к списку суффиксов для того, чтобы выяснить, что субдомен и что такое домен, например Get the subdomain from a URL

Смежные вопросы