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; //то что тебе нужно
Павел Андреевич
жизнь — это огромная река: кто-то плывет в лодке, кто-то просто тонет...
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));
}
А>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", так это простой идентификатор для регулярного выражения.