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

Collection et Stream Java Discussion :

Petit problème avec une regexp


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 82
    Points : 52
    Points
    52
    Par défaut Petit problème avec une regexp
    Voila, j'ai un texte balisé à l'aide de balises XML, je souhaite enlever ces balises pour retrouver le texte d'origine, donc supprimer toutes les balises.

    Les regexp me paraissent une bonne solution pour traiter ce problème, mais mon code ne fonctionne pas, je dois faire une légère erreur dans le pattern :

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public static String tempRendu(String textBalise){
    		Pattern regexp = Pattern.compile("<.+>");
    		// On retourne le text ou l'on a remplacé toutes les balises par ""
    		return textBalise.replaceAll(regexp.pattern(),"");
    	}
    le texte de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <auteur name="dsfs">test<lb/>
    </auteur><lb/>
    dfsdfsdf<lb/>
    Le résultat de ma regexp :
    normalement, je devrai avoir ceci à la fin :
    Quel est l'erreur dans mon pattern qui fait que le texte situé entre deux >< est lui aussi effacé ?

    Merci d'avance pour vos lumières

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Avez-vous essayé quelque chose comme "<[^>]+>" ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par alain.couthures Voir le message
    Avez-vous essayé quelque chose comme "<[^>]+>" ?
    ha non mais ca fonctionne !
    Littéralement, cela signifie quoi ?

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    ^ sert à inverser donc ^> veut dire tout caractère sauf >
    [] sert à encadrer un ensemble de caractères

    Donc [^>]+ correspond à tous les caractères (au moins un) jusqu'à > .

    Le problème avec .+> est qu'il peut y avoir plusieurs correspondances : .+ a le droit de contenir le caractère > !

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Il y a mieux :

    Ceci (le .+? ) ordonne clairement au compilateur d'expression régulière qu'il doit chercher la chaîne la plus petite possible comprise entre les caractères '<' et '>' et non la plus grande.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par dingoth Voir le message
    Il y a mieux :

    Ceci (le .+? ) ordonne clairement au compilateur d'expression régulière qu'il doit chercher la chaîne la plus petite possible comprise entre les caractères '<' et '>' et non la plus grande.
    c'est super, merci pour toutes ses informations !

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

Discussions similaires

  1. Petit problème avec une pile
    Par josef24 dans le forum C
    Réponses: 12
    Dernier message: 29/10/2007, 13h00
  2. Petit problème avec une DropDownList
    Par Dohmaker dans le forum VB.NET
    Réponses: 6
    Dernier message: 20/09/2007, 18h19
  3. Petit problème avec une procédure stockée
    Par Poulain dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/05/2007, 18h58
  4. Petits problèmes avec une CListCtrl
    Par vanitom dans le forum MFC
    Réponses: 2
    Dernier message: 17/11/2005, 11h45
  5. (Petit ?) problème avec une page contenant du Flash
    Par ologram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 18h45

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