IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages Discussion :

Expression régulière : Supprimer le code HTML sauf les balises <a


Sujet :

Langages

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 13
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Pour parser du HTML on utilise un parseur HTML pas des expressions rationnelles.
    Tu peux utiliser le HtmlAgilityPack

  3. #3
    Membre averti
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Par défaut
    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 ?

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    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?

  5. #5
    Membre averti
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Par défaut
    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.

  6. #6
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430

Discussions similaires

  1. [RegEx] Tout compter sauf les balises HTML
    Par ProgVal dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2009, 15h31
  2. expression régulière : supprimer un mot et tous ce qui le suit
    Par Invité dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/04/2008, 13h00
  3. Réponses: 3
    Dernier message: 21/05/2007, 18h34
  4. supprimer le code html d'une chaîne String
    Par adrien.nicolet dans le forum Langage
    Réponses: 3
    Dernier message: 04/06/2006, 19h08
  5. Réponses: 4
    Dernier message: 24/08/2005, 19h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo