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] Pattern matching


Sujet :

Collection et Stream Java

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Regex] Pattern matching
    Bonjour,

    Je rame un peu pour obtenir les trois matchs souhaités dans une séquence "aaaa" avec un pattern "aa".
    Voici le code que j'ai implémenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Pattern p = Pattern.compile( "aa" );
    Matcher m = p.matcher( "aaaa" ) ;
     
    while( m.find( ) ) {
    	 System.out.println( "m : " + m ) ;
    	 System.out.println( "group : " + m.group( ) ) ;
    	 System.out.println( "position : " + m.start( ) ) ;
    }
    Voici le résultat obtenu :
    m : java.util.regex.Matcher[pattern=aa region=0,4 lastmatch=aa]
    group : aa
    position : 0
    m : java.util.regex.Matcher[pattern=aa region=0,4 lastmatch=aa]
    group : aa
    position : 2
    Pour une séquence "aaaa" je devrai logiquement retrouver pour le pattern "aa" trois matchs ( => positions 0, 1 et 2 ). Or il manque un match !

    Y a-t-il des paramètres particuliers pour me permettre d'obtenir ce que je souhaite ? J'ai cherché mais j'en ai pas trouvé qui conviennent...

    Merci pour vos réponses

  2. #2
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    En fait, j'ai trouvé la réponse à ma question qui semble avoir intéressé beaucoup de monde... . En utilisant le pattern "(?=/a{2}/)", j'obtiens ce que je souhaite. Cependant, pour des patterns plus compliqués comme (?=/a{2}.{1,2}b{2}/) appliqué à la chaine "aaaabbb" je n'obtiens que 3 matchs au lieu des 4 attendus (=> aaaabb, aaabb, aabbb et aaabbb).
    Quelqu'un connaît-il la syntaxe de l'expression régulière (s'il en existe une !) qui me donnerait ce que j'attends ?

Discussions similaires

  1. Use of uninitialized value in pattern match (m//)
    Par Vladkergan dans le forum Langage
    Réponses: 4
    Dernier message: 13/01/2008, 19h25
  2. pattern matching (image processing)
    Par anatore dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 15/10/2007, 16h01
  3. Use of uninitialized value in pattern match(m//)
    Par hayaet dans le forum Langage
    Réponses: 1
    Dernier message: 08/10/2007, 11h45
  4. [regex.Pattern] comment on active CASE_INSENSITIVE ?
    Par ramislebob dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 02/08/2007, 15h16
  5. [regex] pattern pour une methode publique
    Par Invité dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/04/2007, 12h57

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