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] Nombre de groupes variables ?


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de osopardo
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Par défaut [Regex] Nombre de groupes variables ?
    Je ne sais pas trop comme formuler ce que je veut donc je vais commencer directement avec un exemple.

    Imaginons qu'on ait des chaines comme celles ci-desssous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    toto12+ab1+titi32
    toto12+ab2+ab3+titi25
    tot23+ab4+ab5+ab6+titi5
    Ce que j'aimerais récupérer dans ces chaines ce sont les chiffres situés après les caractères "ab" et avant le "+" ou la fin de ligne qui les suit immédiatement, ce qui donnerait 1; 2, 3 ; 4, 5, 6.

    un expression régulière pour récupérer un de ces chiffres serait

    Ce que je voudrait maintenant c'est spécifier que je peut avoir cette expression x fois, quelque chose que l'on pourrait définir intuitivement comme mettre un "+" sur l'ensemble de cette expression, quelque chose comme |ab([0-9]{1,2})\+*|+ en imaginant que | | soit des délimiteurs comme des paranthése.
    Ce qui me renverait respectivement, avec les phrase exemple, 1, 2 et 3 groupes de captures.


    J'espère ne pas avoir trop mal exprimer mon besoin et je voudrais donc savoir si c'est possible d'une manière ou d'une autre.

  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,


    Pourquoi ne pas simplement rechercher toutes les occurences avec fin() plutôt que de vérifier le tout en une seule étape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            String s3 = "tot23+ab4+ab5+ab6+titi5";
     
     
            Pattern p = Pattern.compile("ab([0-9]{1,2})\\+");
            Matcher m = p.matcher(s3);
     
            while (m.find()) {
                System.out.println(m.group(1));
            }
    Affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ab4+ : 4
    ab5+ : 5
    ab6+ : 6
    a++

  3. #3
    Membre confirmé
    Avatar de osopardo
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Par défaut
    Parce que ça m'arrangerais bien

    Mon objectif est d'arriver à identifier rapidement et simplement à quel "châine type" appartient une chaîne de caractères comme celles de mon exemple. Il faut donc par exemple une expression qui identifie un type de chaine comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    toto[0-9]{1,2}\\+ab[0-9]{1,2}\\+ab[0-9]{1,2}\\+ab[0-9]{1,2}\\+titi[0-9]{1,2}
    et qui permette par la suite d'en extraire certains éléments, comme les nombres accolé aux caractères "ab" pour rester dans le cadre de l'exemple.
    La difficulté ici reposant sur le fait qu'il puisse y avoir 'x' fois "ab[0-9]{1,2}" pour un type de chaîne donné, 'y' fois "titi[0-9]{1,2}", ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2009, 01h51
  2. [REGEX]nombre de group variable
    Par spilliaert dans le forum Langage
    Réponses: 8
    Dernier message: 03/07/2006, 21h47
  3. Macros et nombre d'arguments variable
    Par kaisse dans le forum C
    Réponses: 7
    Dernier message: 28/07/2005, 10h10
  4. Nombre d'arguments variable
    Par gege2061 dans le forum C
    Réponses: 7
    Dernier message: 05/08/2004, 15h43
  5. Réponses: 5
    Dernier message: 25/11/2003, 09h41

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