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

avec Java Discussion :

Expression régulière Java


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2012
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 34
    Points : 22
    Points
    22
    Par défaut Expression régulière Java
    Hello,

    J'ai un petit problème avec une expression régulière qui peut se finir de 2 façon différente:
    1. chaine de caractère A + un tiret + chaine de caractère B quelconque
    2. chaine de caractère A

    la chaine A correspond à l'expression régulière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A-Za-z]{2}[A-Za-z_]?-[0-9]{5}-[0-9]{1}
    Pour prendre en compte les 2 fins possibles je voulais ajouter:
    (-.*)*

    J'ai testé notamment avec la chaine "xd-05543-01" et find() renvoi vrai alors
    qu'il devrait renvoyer faux (ici je finis avec un tiret puis 2 chiffres alors que je ne veux qu'accepter un chiffre après le 2ème tiret).

    Merci de votre aide
    Florent

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour,

    C'est cela qui doit poser problème:
    Citation Envoyé par florent.hascher Voir le message
    Pour prendre en compte les 2 fins possibles je voulais ajouter:
    (-.*)*
    Essaie avec (-.*)?

    L'étoile signifie [0-n] alors que le point d'interrogation signifie [0-1].

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Après une relecture plus attentive, je pense qu'il reste un problème de compréhension.

    Je suppose que tu utilises la classe Matcher pour travailler avec les expressions régulières.
    La méthode find permet de trouver la première sous-chaîne qui correspond à ton expression régulière. Dans ton exemple, on a bien la sous-chaîne "xd-05543-0" qui correspond à ton expression régulière. Donc c'est normal que find te renvoie vrai.

    Si tu veux une correspondance exacte, tu dois utiliser la méthode matches.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2012
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Oui effectivement, j'ai remarqué ça un peu plus tard. Matches est la fonction qui m'intéresse.
    Merci

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

Discussions similaires

  1. expression régulière java et xml
    Par jmturc dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 07/06/2012, 17h37
  2. Réponses: 1
    Dernier message: 04/09/2009, 12h37
  3. Expression régulière Java
    Par dnevers dans le forum Général Java
    Réponses: 5
    Dernier message: 05/03/2009, 11h12
  4. Expression régulière java
    Par Anubis dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 04/09/2008, 12h28
  5. Expressions régulières Java (matchs insuffisants)
    Par jemore dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2006, 19h55

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