2010-02-19 5 views
1

Есть некоторые адреса следующим образом:Выберите HostName с регулярным выражением в C#?

http://rs320tl.rapidshare.com/files/119371167/sth.rar 

Я собираюсь выбрать rs320tl.rapidshare.com с Regex, но я не знаком с регулярными выражениями.
Не могли бы вы направить меня?

Спасибо.

PS.
rs320tl Адрес по-разному.

ответ

3

Если вы действительно хотите спуститься по маршруту Regex/C#, я думаю, что то, что вы ищете, это примерно так:

string sOriginalUrl = "http://rs320tl.rapidshare.com/files/119371167/sth.rar"; 
string sPattern = "http://(?'host'[0-9a-zA-Z-.]*)/.*"; 
Regex re = new Regex(sPattern, RegexOptions.ExplicitCapture); 
string sHost = re.Match(sOriginalUrl).Groups["host"].Value; 
+1

Спасибо, но это не работает с 'rs320tl.rapidshare.com' –

4

Для этого не следует использовать регулярные выражения.

Вместо этого используйте Uri класс:

Uri uri = new Uri(yourString, UriKind.Absolute); 
string host = uri.Host; 

Если вы хотите проверить, является ли строка acutally URL-адрес, используйте следующий код:

Uri uri; 
if (!Uri.TryCreate(yourString, UriKind.Absolute, out uri)) 
    //String is not a valid URL. Waah waah waah 
string host = uri.Host; 
+0

Спасибо, но как насчет Regex one, Не могли бы вы разместить регулярное выражение, чтобы сделать это. –

+0

'http: // ([a-zA-Z0-9.-] +) /' – SLaks

+0

SLaks, ваши регулярные выражения ошибочны, я пробовал. –

1

«// (\ ш. *? \ w)/"group [1] будет иметь ваш url

+0

Вы уверены в выражении! Я хотел проверить его, я получаю эту ошибку 'Unrecognized escape sequence' для' w' –

+0

Вам нужно поставить '@' перед строкой. – SLaks

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