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 :

Java Regular Expression


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut Java Regular Expression
    Bonjour,

    N'ayant jamais utilisé les expressions régulières, j'ai un peu de mal à comprendre leur processus.
    Je recherche une expression régulière qui permet de détecter une chaîne de caractère commençant et se terminant par un chiffre. Les autres caractères de la chaîne sont exclusivement des lettres majuscules ou minuscules.

    Pouvez m'expliquer, par étape, comment m'y prendre pour créer cette expression réguluère ?

    Par avance, merci.
    Cordialement, Kévin.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Lire la JavaDoc de Pattern.

    - Pour reconnaître un chiffre : - Ça commence et termine par un chiffre, donc ça doit ressembler à - Les lettres majuscules et minuscules, on a dire que c'est de a à z et de A à Z.

    - Pour indiquer "n'importe quel caractère de c à v" on fait Par exemple au lieu de "\\d" on aurait pu faire "[0-9]" ça marche aussi.

    - Pour indiquer "n'importe quel caractère de c à h ou n'importe quel caractère de t à v" on fait Donc pour dire "un chiffre ou une minuscule" on pourrait faire "[0-9a-z]"

    - Pour indiquer que quelque chose peut apparaître zéro ou plusieurs fois, on le fait suivre par une étoile *.
    Donc, "zéro ou plusieurs fois C" sera "C*"
    Et "un chiffre, zéro ou plusieurs fois" peut s'écrire "\\d*" ou "[0-9]*".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    Tout d'abord merci pour votre réponse rapide.
    Je me suis seulement trompé dans mon expression régulière ^^, c'est le contaire en faite. La chaîne de caractère doit commencée par une lettre et finir par une lettre. Les autres caractères sont en effet des chiffres.

    D'après ce que vous me dites, je peux faire ceci ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Pattern pattern = Pattern.compile("[A-Za-z][0-9][0-9][0-9][0-9][0-9][0-9][A-Za-z]");
    Matcher matcher = pattern.matcher(myString);
    Par avance, merci.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Oui, mais il y a plus simple.

    - L'expression pourrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[A-Za-z][0-9]{6}[A-Za-z]"
    Et pour vérifier si ça colle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(myString.matches("[A-Za-z][0-9]{6}[A-Za-z]")) {
     //
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern pattern = Pattern.compile("[A-Za-z][0-9][0-9][0-9][0-9][0-9][0-9][A-Za-z]");
    Avec ceci, seront trouvés les chaînes qui commencent par une lettre (maj. ou min.), suivis d'exactement 6 chiffres, et qui se terminent par une lettre (maj. ou min.). A toi de voir si c'est ce que tu recherchais...

    Pour faire plus simple, on peut écrire la même chose ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Pour dire "exactement x fois", on peut rajouter "{x}" derrière la séquence voulue
    // Pour les lettres, je crois que l'on met les minuscules en premier (par habitude)
    // Il doit d'ailleurs exister une notation pour remplacer [a-zA-Z].
    Pattern pattern = Pattern.compile("[a-zA-Z]\\d{6}[a-zA-Z]");
    Mako.

    Edit : Grillé...

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    Ok c'est noté !
    Je vais me renseigner davantage sur ces expressions dès que j'aurais le temps ! En tout cas, merci à vous deux

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

Discussions similaires

  1. [Regular expression] Possessive quantifiers
    Par Pragmateek dans le forum Langage
    Réponses: 1
    Dernier message: 24/06/2006, 12h55
  2. [debutant] Regular Expression
    Par absolut75 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 13/06/2006, 01h43
  3. [RegEx] Empty regular expression
    Par Khrysby dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2006, 22h25
  4. [Regular Expressions] Numérotation romaine
    Par ramalho dans le forum Valider
    Réponses: 3
    Dernier message: 24/02/2004, 17h43

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