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

Langage Java Discussion :

Suppression balises (regex)


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut Suppression balises (regex)
    Bonjour,
    de la meme facon que pour les balises HTML je voudrais supprimer des balises qui commencent par "[[" et finissent pas "]]".
    seulement mon expression régulière ne semble pas correcte. je me suis inspiré de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("<[^>]*>", "");
    je fait donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("(\\[\\[)[^(\\]\\])*(\\]\\])", "")
    .
    Je m'explique : tout d'abord les caractères [[ avec \\[\\[
    ensuite tout sauf ]] avec [^(\\]\\])
    on répère l'élément précédent une ou plusieurs fois avec *
    les caractères ]] avec (\\]\\])

    J'espère que quelqu'un sera m'aider.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par maxr397 Voir le message
    ensuite tout sauf ]] avec [>(\\]\\])
    Cela signifie plutôt " un caractère parmi > ou ] "...


    Perso j'utiliserai plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("\\[\\[.*?\\]\\]", "")
    .*? est équivalent à .*, sauf qu'il prend la chaine correspondante la plus petite

    Donc on recherche une suite de caractère quelconque entre [[ et ]]


    On peut faire la même chose pour les balises HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("<.*?>", "");
    a++

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    oui dsl, je voulais dire [^(\\]\\]) pour tout sauf ]].
    Merci pour ta solution.

    edit : je viens de trouver mon erreur, il manquait un ']'
    ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("(\\[\\[)[^(\\]\\])]*(\\]\\])", ""));
    ta solution est tout de même plus simple

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    par contre je voudrais aussi supprimer les balises HTML.
    au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str = str.replaceAll("<[^>]*>", "");
    str.replaceAll("\\[\\[.*?\\]\\]", ""));
    est-il possible de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str.replaceAll("<[^>]*> | \\[\\[.*?\\]\\]", "");
    ?

    visiblement, après avoir tester toutes les chaines voulues ne sont pas supprimées.

  5. #5
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Pour ta dernière question, tu as mis des espaces autour du pipe, et donc il ne va remplacer que s'il y a effectivement un espace à cet endroit. Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str.replaceAll("<.*?>|\\[\\[.*?\\]\\]", "");

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut Merci
    oh oui exact, désolé pour cette erreur et cette question idiote. Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDOM] Suppression balises + éléments
    Par Tuxico dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 04/12/2008, 13h32
  2. [JDOM] xpath+jdom+regex ==> suppression balise
    Par fasfousba dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 14/11/2008, 10h27
  3. [RegEx] suppression balise perso
    Par kenji33 dans le forum Langage
    Réponses: 2
    Dernier message: 14/04/2008, 08h44
  4. problème regex suppression balises HTML
    Par crazydindon dans le forum Langage
    Réponses: 6
    Dernier message: 11/09/2007, 14h39
  5. Suppression balise HTML en Javascript
    Par calahaan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/01/2007, 22h18

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