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+))";
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"));
- }
- }