using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
var html = "<p>Controlar los niveles en sangre de bicarbonato, sodio y potasio. Alcaliniza la orina. Usar con precaución en pacientes con insuficiencia hepática. <a href=\"http://www.garrahan.gov.ar/PDFS/cime/junio2018.pdf\">Ver guía preliminar para la prevención de teratogénesis causada por medicamentos.</a></p>" +
"<p>Controlar los niveles en sangre de bicarbonato, sodio y potasio. Alcaliniza la orina. Usar con precaución en pacientes con insuficiencia hepática. <a href=\"http://www.garrahan.gov.ar/PDFS/cime/junio2018.pdf\">Ver guía preliminar para la prevención de teratogénesis causada por medicamentos.</a></p>" +
"<p>Controlar los niveles en sangre de bicarbonato, sodio y potasio. Alcaliniza la orina. Usar con precaución en pacientes con insuficiencia hepática. <a href=\"http://www.garrahan.gov.ar/PDFS/cime/junio2018.pdf\">Ver guía preliminar para la prevención de teratogénesis causada por medicamentos.</a></p>";
var s = LinkFinder.Find(html);
foreach (LinkFinder.HtmlPart i in s)
public override string ToString()
return Url + "\n\t" + Text;
public static List<HtmlPart> Find(string file)
var list = new List<HtmlPart>();
var pendingContent = file;
Match m1 = Regex.Match(pendingContent, @"^(.*?)(<a.*?>.*?<\/a>)(.*)", RegexOptions.Singleline);
var previousText = new HtmlPart();
previousText.Text = m1.Groups[1].Value;
var linkText = m1.Groups[2].Value;
var link = new HtmlPart();
Match m2 = Regex.Match(linkText, @"href=\""(.*?)\""", RegexOptions.Singleline);
link.Url = m2.Groups[1].Value;
string t = Regex.Replace(linkText, @"\s*<.*?>\s*", "", RegexOptions.Singleline);
pendingContent = m1.Groups[3].Value;