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