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

Java Discussion :

regex pour échapper certaines balises html


Sujet :

Java

  1. #1
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut regex pour échapper certaines balises html
    Bonjour, je suis pas très fort en expression régulières, ça tourne souvent au casse-tête chinois.
    Je valide un formulaire contenant contenant un texte, du code html et j'aimerais transformer tout mes < et > en &lt; et &gt; sauf ceux des balises pre (<pre class="...</pre>)
    j'ai donc cherché sur google 'tous sauf une chaine' mais ce n'est pas très concluant. Pour l'instant j'ai un truc dans le style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Matcher matcher;
            Pattern pattern;
            String replace;
     
            pattern = Pattern.compile("<(^(pre))>", Pattern.DOTALL | Pattern.MULTILINE);
            replace="&lt$1&gt";
            matcher=pattern.matcher(str);
            str=matcher.replaceAll(replace);
    qui ne marche pas du tout enfin j'ai tenté, plus généralement je vois comment définir une chaîne dans une regex (il suffit de l’écrire) mais son complémentaire je vois pas trop.

    Merci pour votre aide :

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Pourquoi vouloir faire ça avec un expression régulière compliquée au lieu de faire ça avec un bout de code simple? Tu pourrais par exemple parser le bout de texte avec un parseur xml et reconvertir toi même le DOM en texte, en rendra le noeud pre avec <pre> et le autres avec &lt;pre&gt; ?

  3. #3
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Pourquoi vouloir faire ça avec un expression régulière compliquée au lieu de faire ça avec un bout de code simple? Tu pourrais par exemple parser le bout de texte avec un parseur xml et reconvertir toi même le DOM en texte, en rendra le noeud pre avec <pre> et le autres avec &lt;pre&gt; ?
    J'avoue que cette idée me plaît, j'ai fait quelques tentatives avec JDOM mais c'est vraiment chaud, notamment à cause des imbrications, c'est vraiment trop compliqué pour moi.
    Merci.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Je pensais plutôt à utiliser un ContentHandler personnalisé, genre en étendant DefaultHandler. En générant du XML correct pour toutes les méthodes (ou en déléguant à un handler standard encore mieux) sauf pour startElement / endElement où tu teste si le localname est "pre" pour décider quoi faire.

Discussions similaires

  1. [RegEx] Regex pour capter les balises html
    Par malgache dans le forum Langage
    Réponses: 7
    Dernier message: 30/01/2013, 13h44
  2. treplace regex pour enlever les balises html
    Par briceg dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 23/10/2009, 10h47
  3. [RegEx] supprimer certaines balises HTML
    Par shinji_rem dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2007, 17h20
  4. [HTML] Outil pour vérifier les balises html
    Par Dsphinx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/12/2006, 10h17
  5. Script pour enlever les balises html
    Par Scratch48 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/11/2005, 17h16

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