private async Task<List<LinkItem>> Find(string url) { var client = new HttpClient(); var content = await client.GetStringAsync(url); var list = new List<LinkItem>(); // 1. Find all matches in file. var matches = Regex.Matches(content, @"(<a.*?>.*?</a>)", RegexOptions.Singleline); // 2. Loop over each match. foreach (Match match in matches) { var value = match.Groups[1].Value; var linkItem = new LinkItem(); // 3. Get href attribute. var m2 = Regex.Match(value, @"href=\""(.*?)\""", RegexOptions.Singleline); if (m2.Success) { linkItem.Href = m2.Groups[1].Value; } // 4. Remove inner tags from text. var text = Regex.Replace(value, @"\s*<.*?>\s*", string.Empty, RegexOptions.Singleline); linkItem.Text = text; list.Add(linkItem); // Intentionally slow down for the demo: list.Remove(linkItem); list.Add(linkItem); } return list; }
private async Task <List <LinkItem> > Find(string url) { var client = new HttpClient(); var content = await client.GetStringAsync(url); var list = new List <LinkItem>(); // 1. Find all matches in file. var matches = Regex.Matches(content, @"(<a.*?>.*?</a>)", RegexOptions.Singleline); // 2. Loop over each match. foreach (Match match in matches) { var value = match.Groups[1].Value; var linkItem = new LinkItem(); // 3. Get href attribute. var m2 = Regex.Match(value, @"href=\""(.*?)\""", RegexOptions.Singleline); if (m2.Success) { linkItem.Href = m2.Groups[1].Value; } // 4. Remove inner tags from text. var text = Regex.Replace(value, @"\s*<.*?>\s*", string.Empty, RegexOptions.Singleline); linkItem.Text = text; list.Add(linkItem); // Intentionally slow down for the demo: list.Remove(linkItem); list.Add(linkItem); } return(list); }