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] Verifier presence de caracteres alphanumeriques seuls


Sujet :

Collection et Stream Java

  1. #1
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut [Regex] Verifier presence de caracteres alphanumeriques seuls
    Bonjour,

    j'aimerai limiter le type de caracteres pour un login, j'ai donc écrit cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pattern = Pattern.compile("[^a-zA-Z0-9_-]");
    matcher = pattern.matcher(chaine);
    b = matcher.matches();
    Afin de navoir que des caracteres alphanum et les _ et -

    Donc si la chaine ne trouve pas que des caracteres alphanum, elle doit renvoyer true, sinon false

    Seulement une saisie d'une chaine "barbare" passe quand même, ca marche pas top quoi. Merci de m'aiguiller pour affiner cela ^^

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    ne conaissant pas les regex par coeur, tu peux utiliser la méthode de la classe Character : isLetterOrDigit sur chaque caractère de ta chaine.
    Edit deprecated, remplacé par isJavaLetterOrDigit

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Le caractère ^ dans un ensemble [] veut dire négation. Donc en fait, ton expression régulière fait le contraire de ce que tu veux. Tu dois lever le ^.

    Quelques remarques :
    • tu as oublié un quantifieur (+ par exemple), en l'état actuel ton expression régulière signifie : 1 caractère qui ne soit pas alphanumérique ni - ni _
    • l'ensemble [a-zA-Z0-9] s'écris aussi \w
    • la classe String possède une méthode matches()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public boolean checkLogin(String login) {
        return login.matches("(\\w|-|_)+");
    }
    Tu trouveras plus d'informations sur la construction des expression régulière dans la javadoc de la classe Pattern .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Yeah je te remercie ca roule comme sur des roulettes

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

Discussions similaires

  1. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  2. verifier si un caractere existe dans un tableau
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/07/2008, 14h28
  3. verifier la presence de caracteres speciaux
    Par makohsarah dans le forum Général Java
    Réponses: 4
    Dernier message: 16/05/2008, 15h50
  4. Incrementation d'un caractere Alphanumerique
    Par Kelly182 dans le forum Access
    Réponses: 12
    Dernier message: 07/07/2006, 08h36
  5. Formulaire : verifier si un caractere est en majuscule
    Par alexbubs dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/10/2005, 12h01

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