Précédent   Forum des professionnels en informatique > Général Développement > Langages en général
Langages en général Forum général sur les langages de programmation, sur la POO, opinions, choix, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 19h47   #1
Futur Membre du Club
 
Inscription : décembre 2003
Messages : 86
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 86
Points : 17
Points : 17
Par défaut regexp pour récupérer tous les liens et leur contenu

Comme l'indique le titre je souhaite utiliser une expression régulière très générique qui me permettrait, pour un contenu html donné incluant des balises ancre/lien, de récupérer à la fois les liens et leur contenu, que je pourrait traiter par ailleurs.
par exemple ces balises doivent être récupérées :

Code :
1
2
3
4
5
6
<a href="http://www.lien1" id="idlien1" class="classlien1" title="titlelien1">lien1</a>
<a href="http://www.lien2" class="classlien2" title="titlelien2">lien2</a>
<a href="http://www.lien3" class="classlien3" id="idlien3">lien3</a>
<a href="http://www.lien5" class="classlien5">lien5</a>
<a href="http://www.lien6" id="idlien6">lien6</a>
<a href="http://www.lien7" title="titlelien7">lien7</a>
j'ai pensé pouvoir faire toutes les opérations en une fois avec une expression
du type
Code :
<a( href="([^"]*)"){0,1}( id="([^"]*)"){0,1}( class="([^"]*)"){0,1}( title="([^"]*)"){0,1}>([^<]*){1}<\/a>
qui fonctionne très bien, mais seulement pour une balise avec les éléments dans cet ordre (href, puis id, puis, class puis title)
Je souhaiterais savoir s'il est possible de généraliser cette expression en cherchant les termes dans n'importe quel ordre.
id, puis href, puis title puis class ou bien title puis id puis class puis href...

merci d'avance
beyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h24   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 497
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 497
Points : 9 672
Points : 9 672
Bonjour,

C'est un parseur qu'il te faut, pas une regexp.

Il existe des parseurs HTML sur le net, tu devrais pouvoir en trouver sans trop de soucis.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 21h13   #3
Futur Membre du Club
 
Inscription : décembre 2003
Messages : 86
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 86
Points : 17
Points : 17
Certes, de la façon dont tu présentes les choses, mon but est de réinventer la roue. C'est pas totalement faux je pense. Cependant, dans les parseurs html que j'ai pu trouver : ex :htmlparser et comparse (sans jeu de mot ) sont des classes bien lourdes (en poids).

Mon but est de récupérer dans un tableau tous les éléments constitutifs de la balise ancre. Peut-être être une gageure de faire ça en une seule regexp. Mon niveau dans ce langage est bien trop faible pour me rendre compte si je fais fausse route ou si je suis proche du but.

En tout cas merci d'avoir répondu
beyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h52.


 
 
 
 
Partenaires

Hébergement Web