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] Expression à créer


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut [Regex] Expression à créer
    Bonjour à tous,

    Je n'y connais rien en expressions régulières et même en lisant des tutoriels, je ne parviens pas à m'en sortir...

    J'aimerais tester la validité du format de mon champ.

    Voici les règles :
    Ce doit être une chaine composée de 8 caractères dont :
    - les 3 premiers caractères sont alphanumériques (de 0 à 9 puis de A à Z à l'exception des lettres "J", "P" et "R")
    - le quatrième caractère est un chiffre (de 0 à 9),
    - les cinquième, sixième et septième caractères sont des lettres (de A à Z à l'exception des lettres "J", "P" et "R"),
    - le huitième caractère est un chiffre (de 0 à 9).

    Je fais donc un maString.matches pour vérifier mais là je bloque.

    J'ai commencé comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     maString.matches("^[A-Z0-9]&&[^ JRP]{3}[0-9]{1}[A-Z]&&[^ JRP]{3}[0-9]{1}")
    Suis-je sur la bonne voie ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Pas loin, la syntaxe pour une union d'intervalles en excluant des caractères, c'est :

    Toutes les lettres de a à z et de A à Z, mais refuser les lettres a, b et c.

    De plus :
    - Le ^ en début de regex est inutile, sauf dans les rares cas de regex appliquées à un fichier et où il faut vérifier qu'on commence en début de ligne.
    - Le {1} est inutile, par défaut c'est une fois, bien sûr.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut
    ok merci beaucoup ! donc j'étais vraiment pas très loin finalement... Je vais enlever les caractères inutiles et je vous redis si ça marche !

    encore merci A+

  4. #4
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut
    Bon bah en fait ça ne marche pas du tout, il ne veut pas exclure mes trois lettres...

    j'ai testé en ne laissant que ça pour être sur mais ça passe alors que ça ne devrait pas :

    maString.matches("^[A-Z0-9]&&[^JRP]{3}")

    la valeur testée :
    maString = "AJC"

    je craque ! help !
    d'avance merci !

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    ??

    Je t'ai déjà répondu... Pertes de mémoire ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut
    si si j'ai bien vu merci ! Par contre je n'arrive pas à l'utiliser pourtant j'ai refait un test simple à l'instant. Je teste ça :

    maString= "ABC";
    maString.matches("^[A-Z0-9&&[^JRP]]{3}");

    j'ai tenté aussi ça :
    maString.matches("[A-Z0-9&&[^JRP]]");

    mais il rejète ma chaine ABC l'estimant incorrecte...

  7. #7
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut
    stop !!!

    c'est bon ça fonctionne ! un grand merci à toi thelvin j'ai revu ma copie calmement, à froid, et ça fonctionne très bien ! un crochet mal placé rien de + !

    Bon bah c'est cool, encore merci, en + ça m'a permis de vraiment comprendre le principe des regex, et c'est maintenant beaucoup plus clair !

    merci A+ !

Discussions similaires

  1. [Regex]Expression régulière
    Par Guillaume Bénétrix dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 06/12/2005, 00h21
  2. [REGEX]Expression régulière
    Par tomca dans le forum Langage
    Réponses: 2
    Dernier message: 10/10/2005, 11h01
  3. db express :créer bdd
    Par Cybher dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/09/2005, 13h32
  4. [Regex] Expressions régulières: sous groupe
    Par debdev dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 07/07/2005, 14h10
  5. [RegEx]Expression régulière
    Par Sniper37 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/06/2005, 11h18

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