Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages
Langages Forum d'entraide sur les langages de développement du Framework .NET (C#, VB.NET, C++, F#, etc.).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/04/2012, 16h31   #1
PRACH
Invité de passage
 
Inscription : février 2005
Messages : 13
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 13
Points : 2
Points : 2
Par défaut Expression régulière : Supprimer le code HTML sauf les balises <a

Bonjour à tous,

J'ai besoin de votre aide pour compléter une expression régulière que je suis en train de faire.
Le but est de récupérer le contenu d'un flux Rss en supprimant les balises HTML qui sont contenus dans la balise <description> parfois afin de garder la main sur la mise en forme.
J'y suis parvenu avec cet regex : "<[^>]*>"

Mais si dans cette balise <description> il y a des liens hypertextes (<a href='...'>bla bla</a>) je souhaiterais les conserver.

Comment puis-je modifier mon expression régulière ?

Merci par avance pour votre aide

p.s : exemple d'un flux google utilisé pour mes tests :
Code :
1
2
3
<description>
<table border="0" cellpadding="2" cellspacing="7" style="vertical-align:top;"><tr><td width="80" align="center" valign="top"><font style="font-size:85%;font-family:arial,sans-serif"><a href="http://www.lefigaro.fr/conjoncture/2012/04/25/20002-20120425ARTFIG00462-europe-draghi-reclame-un-pacte-de-croissance.php">Le Figaro</a></td></tr></table>
</description>
PRACH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2012, 16h34   #2
meziantou
Membre Expert
 
Homme Gérald Barré
Étudiant
Inscription : avril 2010
Messages : 940
Détails du profil
Informations personnelles :
Nom : Homme Gérald Barré
Âge : 22
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : avril 2010
Messages : 940
Points : 2 062
Points : 2 062
Pour parser du HTML on utilise un parseur HTML pas des expressions rationnelles.
Tu peux utiliser le HtmlAgilityPack
__________________
Pensez à la balise ainsi qu'au petit pouce vert
Mon blog : http://www.meziantou.net
WindowManager : Gérer facilement vos différentes fenêtres
meziantou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2012, 16h37   #3
PRACH
Invité de passage
 
Inscription : février 2005
Messages : 13
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 13
Points : 2
Points : 2
Citation:
Envoyé par meziantou Voir le message
Pour parser du HTML on utilise un parseur HTML pas des expressions rationnelles.
Tu peux utiliser le HtmlAgilityPack
Je prend note du lien au cas où.

Mais pour des raisons indépendantes de ma volonté, je n'ai pas d'autres choix que d'utiliser une regex.

Il n'y a pas de solutions pour inclure une clause "sauf les balises <a" dans mon expression ?
PRACH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2012, 17h25   #4
Er3van
Modérateur
 
Avatar de Er3van
 
Homme Clément Lehalle
Architecte Logiciel
Inscription : avril 2008
Messages : 1 426
Détails du profil
Informations personnelles :
Nom : Homme Clément Lehalle
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Architecte Logiciel
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 1 426
Points : 2 377
Points : 2 377
Plutôt que d'essayer de supprimer tout le reste, ça ne serait pas plus simple de récupérer uniquement les balises en question?
__________________
One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

-- Chuck Palahniuk, Fight Club, Chapter 3 --
Er3van est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2012, 17h28   #5
PRACH
Invité de passage
 
Inscription : février 2005
Messages : 13
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 13
Points : 2
Points : 2
Citation:
Envoyé par Er3van Voir le message
Plutôt que d'essayer de supprimer tout le reste, ça ne serait pas plus simple de récupérer uniquement les balises en question?
Tu as raison et c'est ce que j'essaye de faire actuellement mais j'ai encore un peu de mal avec les expressions régulières.

J'ai décidé de conserver uniquement les balises <a> et <b> et <br>

J'arrive donc à récuperer toutes les balises commençant par a ou b en faisant ceci :
<[^a|b][^>]*>

mais j'ai désormais du mal à lui dire de conserver également les balises fermantes.
PRACH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2012, 17h09   #6
Er3van
Modérateur
 
Avatar de Er3van
 
Homme Clément Lehalle
Architecte Logiciel
Inscription : avril 2008
Messages : 1 426
Détails du profil
Informations personnelles :
Nom : Homme Clément Lehalle
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Architecte Logiciel
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 1 426
Points : 2 377
Points : 2 377
Un peu de lecture pour t'aider : Expressions régulières et .Net - par David Grellety
__________________
One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

-- Chuck Palahniuk, Fight Club, Chapter 3 --
Er3van est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h03.


 
 
 
 
Partenaires

Hébergement Web