Regex вытащить из всех найденных их ссылки - C#

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

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

Делаю запрос на страницу, хочу получить все ссылки из тега <a> Пример:
Листинг программы
  1. <a
  2. name="1"
  3. href="http://website1.com/"
  4. class="b"
  5. >
  6. <a
  7. name="2"
  8. href="http://website2.com/"
  9. class="b"
  10. >
нужно вытащить из всех найденных <a> их href'ы. и получить на выходе массив {"http://website1.com/","http://website2.com/"}
Нашел пример для title
Листинг программы
  1. string pattern = @"(?<=<title>)(.*)(?=</title>)";
Но для других тегов он не работает
нашел вот такое выражение на msdn
Листинг программы
  1. string HRefPattern = "href\\s*=\\s*(?:["'](?<1>[^"']*)["']|(?<1>\\S+))";
Пытаюсь внести свои правки, получаю
Листинг программы
  1. string pattern = "<a(\\S{1,})href\\s*=\\s*(?:["'](?<1>[^"']*)["']|(?<1>\\S+))";
Но это не находит результаты
textual
Листинг программы
  1. using (var http = new HttpClient())
  2. {
  3.     string html = http.GetStringAsync("http://ru.wikipedia.org").Result;
  4.  
  5.     var parser = new HtmlParser();
  6.     var document = parser.Parse(html);
  7.     foreach (var linkElement in document.QuerySelectorAll("a[href]"))
  8.     {
  9.         Console.WriteLine(linkElement.GetAttribute("href"));
  10.     }
  11. }

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы