Извлечь адрес сервера из url
От: Аноним  
Дата: 25.02.05 16:50
Оценка:
Уже встречалось в форуме, но у меня немного сложней задачка.

Hужно с помощью регулярных выражений из строк вида


http://rsdn.ru/Forum/NewMsg.aspx?gid=8
http://www.rsdn.ru
www.rsdn.ru
rsdn.ru/Forum/NewMsg.aspx?gid=8
rsdn.ru/Forum/NewMsg.aspx?gid=8
и т.п.


получить

rsdn.ru


Спасибо.
Re: Извлечь адрес сервера из url
От: TK Лес кывт.рф
Дата: 25.02.05 19:24
Оценка: 8 (1)
Hello,
> Уже встречалось в форуме, но у меня немного сложней задачка.
> Hужно с помощью регулярных выражений из строк вида
>

UriBuilder не пробовал?

а наличие двух rsdn.ru и www.rsdn.ru зависит полностью от админов. Это могут быть и два разных сервера.
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Извлечь адрес сервера из url
От: Аноним  
Дата: 25.02.05 21:33
Оценка:
см.
http://www.gotdotnet.ru/Forums/ASPNET/119073.aspx
http://www.gotdotnet.ru/Forums/ASPNET/115357.aspx


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RE: Извлечь адрес сервера из url
От: Аноним  
Дата: 26.02.05 12:18
Оценка:
Уже встречалось в форуме, но у меня немного сложней задачка.

Hужно с помощью регулярных выражений из строк вида



http://rsdn.ru/Forum/NewMsg.aspx?gid=8
http://www.rsdn.ru
www.rsdn.ru
rsdn.ru/Forum/NewMsg.aspx?gid=8
rsdn.ru/Forum/NewMsg.aspx?gid=8
и т.п.

получить


rsdn.ru

Спасибо.

(http://)?(www\.)?(?<http>.+\.\w{2,3})(?<folders>(?=)/.+(?<=)/)?(?<name>(/)?\w+\.\w{1,4})(?<params>.+)



RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Compiled;
Regex regex = new Regex(@"(http://)?(www\.)?(?<http>.+\.\w{2,3})(?<folders>(?=)/.+(?<=)/)?(?<name>(/)?\w+\.\w{1,4})(?<params>.+)", options);
Match m = regex.Match(mystring);
string newstr=m.Groups["http"].Value; //то что тебе нужно


Павел Андреевич

жизнь — это огромная река: кто-то плывет в лодке, кто-то просто тонет...



данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Извлечь адрес сервера из url
От: Аноним  
Дата: 26.02.05 13:47
Оценка:
> Hужно с помощью регулярных выражений ...

public static string[] GetDomains(string text)
{
ArrayList arr = new ArrayList();
string pattern = "(?<Protocol>\\w+):\\/\\/(?:www.){0,1}(?<Domain>[\\w.]+)\\/?\\S*(?x)";
MatchCollection mc = Regex.Matches(text, pattern);
foreach (Match m in mc)
{
Group g = m.Groups["Domain"];
if (g.Success)
arr.Add(g.Value);
}
return (string[])arr.ToArray(typeof(string));
}


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Извлечь адрес сервера из url
От: Аноним  
Дата: 28.02.05 07:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>> Hужно с помощью регулярных выражений ...


А>public static string[] GetDomains(string text)

А>{
А> ArrayList arr = new ArrayList();
А> string pattern = "(?<Protocol>\\w+):\\/\\/(?:www.){0,1}(?<Domain>[\\w.]+)\\/?\\S*(?x)";
А> MatchCollection mc = Regex.Matches(text, pattern);
А> foreach (Match m in mc)
А> {
А> Group g = m.Groups["Domain"];
А> if (g.Success)
А> arr.Add(g.Value);
А> }
А> return (string[])arr.ToArray(typeof(string));
А>}

В том то и дело, что я не знаю домен. Его нужно как-то извлечь из URL'ы
Re[2]: Извлечь адрес сервера из url
От: Аноним  
Дата: 28.02.05 07:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Уже встречалось в форуме, но у меня немного сложней задачка.


А>Hужно с помощью регулярных выражений из строк вида




А>http://rsdn.ru/Forum/NewMsg.aspx?gid=8

А>http://www.rsdn.ru
А>www.rsdn.ru
А>rsdn.ru/Forum/NewMsg.aspx?gid=8
А>rsdn.ru/Forum/NewMsg.aspx?gid=8
А>и т.п.

А>получить



А>rsdn.ru


А>Спасибо.


А>(http://)?(www\.)?(?<http>.+\.\w{2,3})(?<folders>(?=)/.+(?<=)/)?(?<name>(/)?\w+\.\w{1,4})(?<params>.+)




А>RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Compiled;

А>Regex regex = new Regex(@"(http://)?(www\.)?(?<http>.+\.\w{2,3})(?<folders>(?=)/.+(?<=)/)?(?<name>(/)?\w+\.\w{1,4})(?<params>.+)", options);
А>Match m = regex.Match(mystring);
А>string newstr=m.Groups["http"].Value; //то что тебе нужно


А>Павел Андреевич


Код работает немного не так. Для строки http://www.rsdn.ru результат возвращается такой: www.rsd. А нужно www.rsdn.ru. Ладно, www я смогу вычленить, а вот почему доменное имя обрезается до 3 символов?
Re: Извлечь адрес сервера из url
От: Аноним  
Дата: 28.02.05 14:07
Оценка:
А>> Hужно с помощью регулярных выражений ...
А>public static string[] GetDomains(string text)
А>{
А> ArrayList arr = new ArrayList();
А> string pattern = "(?<Protocol>\\w+):\\/\\/(?:www.){0,1}(?<Domain>[\\w.]+)\\/?\\S*(?x)";
А> MatchCollection mc = Regex.Matches(text, pattern);
А> foreach (Match m in mc)
А> {
А> Group g = m.Groups["Domain"];
А> if (g.Success)
А> arr.Add(g.Value);
А> }
А> return (string[])arr.ToArray(typeof(string));
А>}


> В том то и дело, что я не знаю домен. Его нужно как-то извлечь из URL'ы

Причем здесь домен?!!! Я вам реальный метод привел.
Попробуйте, вызовите метод GetDomains() и посмотрите на результат. А то, что в методе есть слово "Domain", так это простой идентификатор для регулярного выражения.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.