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 :

[Regex] Matchage RegEx


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Par défaut [Regex] Matchage RegEx
    Bonjour tous,

    en fait mon problème est pas vraiment Java, c'est juste que je bloque sur la construction d'une expression régulière, pas sur le code Java pour utiliser des RegEx.

    J'ai un texte du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <TAG_START>
    bbla bla ble <!-- un contenu quelconque qui peut contenir d'autre tags -->
    bla blabla
    <TAG_END>
    bbla bla ble <!-- un contenu quelconque qui peut contenir d'autre tags -->
    bla blabla
    <TAG_START>
    bbla bla ble <!-- un contenu quelconque qui peut contenir d'autre tags -->
    bla blabla
    <TAG_END>
    J'ai fait une RegEx comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (<TAG_ST>)(.*)(<TAG_END>)
    Sauf que ça me matche tout le pavé et pas les deux occurences de mes <TAG_START>...<TAG_END>.

    C'est quoi l'astuce pour dire que mon groupe 2 ne peut pas contenir <TAG_END> svp ?

    Merci

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut utiliser les "Reluctant quantifiers" pour que le matches se réduise à la taille minimum :
    a++

  3. #3
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Par défaut
    Merci adiGuba, ça marche... par contre, je ne comprends pas trop pourquoi !

    Tu dis :
    pour que le matches se réduise à la taille minimum
    Ca, je comprend, il cherche la chaine qui matche ".*" qui soient la plus petite possible.
    Mais la définition de l'opérateur "*?" :
    X*? X, zero or more times
    Je saisi pas trop, c'est une sorte de priorité, genre plutôt zéro que n fois ?

    A+

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

Discussions similaires

  1. [java.util.regex.Pattern] Regex : contrôler le nombre d'accolades
    Par jmini dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 01/12/2009, 10h33
  2. [TR1/regex] Pb regex qui plante
    Par jfrabaute dans le forum SL & STL
    Réponses: 5
    Dernier message: 11/10/2009, 23h47
  3. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 14h22
  4. [regex][string] replaceAll bogué ?
    Par 7eme dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/11/2003, 16h36
  5. Cherche regex...
    Par laurent_h dans le forum C
    Réponses: 4
    Dernier message: 31/03/2003, 11h24

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