Выберите имя хоста с помощью Regex в C #? - PullRequest
1 голос
/ 19 февраля 2010

Есть следующие адреса:

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

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

Спасибо.

PS.
rs320tl в адресе является переменной.

Ответы [ 3 ]

4 голосов
/ 19 февраля 2010

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

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

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

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

Uri uri;
if (!Uri.TryCreate(yourString, UriKind.Absolute, out uri))
    //String is not a valid URL.  Waah waah waah
string host = uri.Host;
3 голосов
/ 19 февраля 2010

Если вы действительно хотите пойти по маршруту 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 голос
/ 19 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...