Regex. Спарсить ссылку - C#

Узнай цену своей работы

Формулировка задачи:

Имеется допустим htmlина, в которой есть такой клочок:
<div class="sepD"></div><a class="i1" href="/recipes/cocktails/">Коктейли</a><a class="i1" href="/recipes/drinks/">Напитки</a><a class="i1" href="/recipes/pancakes/">Блины и оладьи</a><a class="i1" href="/recipes/pies/">Пироги и пирожки</a><a class="i1" href="/recipes/pizza/">Пицца</a><a class="i1" href="/recipes/porridge/">Каши</a><a class="i1" href="/recipes/jams/">Варенье и джемы</a><a class="i1" href="/recipes/cakes/">Торты и пирожные</a><a class="i1" href="/recipes/candy/">Конфеты и сладости</a><a class="i1" href="/recipes/baking/">Выпечка</a><a class="i1" href="/recipes/desserts/">Десерты</a><a class="i1" href="/recipes/garnish/">Гарниры</a><a class="i1" href="/recipes/pickles/">Заготовки и соленья</a><a class="i1" href="/recipes/sauces/">Соусы</a><a class="i1" href="/recipes/sandwiches/">Бутерброды</a><a class="i1" href="/recipes/appetizers/">Закуски</a><a class="i1" href="/recipes/salads/">Салаты</a>
Вот я хочу достать все ссылки класса 'i1', и текст, который эти ссылки характеризует. Пишу такой код:
string pattern = @"class=""i1"" href=""([^""]*)"">([А-я\s]*)";
            Regex reg = new Regex(pattern);
            MatchCollection collection = reg.Matches(categoriesHtml);
Получаю эти ссылки, но почему то в св-ве Groups какого-нибудь отдельного экземпляра из collection нет текста для ссылки (Напитки, Каши..). А мне он нужен, как исправить мне регексину мою, чтобы использую Match.Goups[] я мог получить и ссыль и текст? Спасибо
разобрался с проблемой, надо было такой регекс вместо моего:
@"class=""i1"" href=""([^""]*)"">([^<]*)"

Решение задачи: «Regex. Спарсить ссылку»

textual
Листинг программы
string pattern = @"class=""i1"" href=""([^""]*)"">([^<]+)";

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5