Petit exemple d'utilisation des expressions régulieres pour extraire les liens d'une page web. Le principe c'est de trouver toutes les séquence <a href=....>...</a>.
L'intéret de l'exemple (qui inclut aussi le téléchargement de la page) c'est de montrer l'utilisation des expressions de remplacement nommées pour extraire des parties de la séquence trouvée (ici l'url et le texte du lien).
private string ExtractLinksInWebPage(string uri)
{
StringBuilder results = new StringBuilder();
WebClient client = new WebClient();
string pageText = client.DownloadString(uri);
Regex re = new Regex("\\[^\"']*)[\"'].*\\>(?.*)\\", RegexOptions.IgnoreCase);
MatchCollection matches = re.Matches(pageText);
foreach (Match match in matches)
results.AppendLine(match.Groups["url"].Value + " => " + match.Groups["text"].Value);
return results.ToString();
}
Exemple avec ce blog:
http://blog.expert-aspnet.fr/ => Quelques trucs que je connais en ASP.Net
#main => Aller au contenu
#blognav => Aller au menu
#search => Aller A la recherche
http://blog.expert-aspnet.fr/category/Visual-Studio => Visual Studio
http://blog.expert-aspnet.fr/tag/regexp => regexp
http://blog.expert-aspnet.fr/post/regexp-extraction-liens-page-web.html#comments => aucun commentaire
http://blog.expert-aspnet.fr/post/regexp-extraction-liens-page-web.html#pings => aucun rA©trolien
http://blog.expert-aspnet.fr/category/Les-bases => Les bases
http://blog.expert-aspnet.fr/post/expressions_resources_globales_markup_aspx.html#comments => aucun commentaire
...
http://blog.expert-aspnet.fr/tags => Tous les tags
http://www.clt-services.com => CLT-Services
http://blog.expert-sql.fr => Blog SQL Server
http://blog.expert-aspnet.fr/archive => Archives/legalnotice => Informations lA©gales