Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Inscrit en
    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>

  2. #2
    Expert Confirmé
    Homme Profil pro Gérald Barré
    Ingénieur R&D
    Inscrit en
    avril 2010
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Nom : Homme Gérald Barré
    Âge : 23
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2010
    Messages : 1 212
    Points : 2 680
    Points
    2 680

    Par défaut

    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
    WindowManager : Gérer facilement vos différentes fenêtres

  3. #3
    Invité de passage
    Inscrit en
    février 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 13
    Points : 2
    Points
    2

    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
    Modérateur
    Avatar de Er3van
    Homme Profil pro Clément Lehalle
    Architecte Logiciel
    Inscrit en
    avril 2008
    Messages
    1 430
    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 430
    Points : 2 259
    Points
    2 259

    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?
    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 --

  5. #5
    Invité de passage
    Inscrit en
    février 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 13
    Points : 2
    Points
    2

    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
    Modérateur
    Avatar de Er3van
    Homme Profil pro Clément Lehalle
    Architecte Logiciel
    Inscrit en
    avril 2008
    Messages
    1 430
    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 430
    Points : 2 259
    Points
    2 259
    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 --

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •