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

Langage Perl Discussion :

[REGEXP] problème de test


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut [REGEXP] problème de test
    bon voilà je cherche à créer une regexp vérifiant si une chaine contient

    7 a 12 caracteres
    avec au moins
    1 majuscule
    1 minuscule
    1 chiffre
    1car special

    donc j'ai pensé à ça

    '[[A-Z]+[a-z]+[0-9]+[\#\[\"\'\é\@]+]{7,12}

    je n'ai pas mis tout les caractéres spéciaux mais c'est pour lexemple

    je pense que les + a l'intérieur des [] englobant les autres sa marche pas

    enfin je vois pas d'ou vient mon erreur

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    voici un code à l'arrache qu'on peut arranger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my $nombre = 'uyUyuy1yuy@y';
     
    if($nombre =~ /^.{7,12}$/  and  $nombre =~ /\d/ and $nombre =~ /[a-z]/ and $nombre =~ /[A-Z]/  and $nombre =~ /[é\@]/ ) {
        print "$nombre : OK\n";          
    }
    else {
      print "$nombre : PAS OK\n";
    }

  3. #3
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    ok c'est ce que jai fait hier avant de débaucher

    je me disais aussi que tout mettre dans une seule ça ne marcherait pas

    et sinon jai un second problème

    mes caractéres spéciaux ne sont pas échappables


    je souhaites mettre tout les caractéres spéciaux en test

    #~{[|`^@]} .............

    donc je les échappe avec antislash \

    le truc c'est que certain ne passe pas et donc erreur au bout
    y'a t'il donc un raccourci permettant de dire

    "moi vouloir tout les Char spéciaux"



    EDIT

    l'utilisation de ceci est il juste pour mes caractéres spéciaux

    [\w_]


    le \w désignant les caractéres alphanum et le _

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    my $nombre = 'uyUyuy1yuy@y';
    my $caractere_speciaux = quotemeta('&{}()èù%*µ@'); # caracteres speciaux
    if(  $nombre =~ /^.{7,12}$/  and # contient entre 7 et 12 caracteres 
         $nombre =~ /\d/         and # contient un chiffre 
         $nombre =~ /[a-z]/      and # contient une lettre minuscule
         $nombre =~ /[A-Z]/      and # contient une lettre majuscule 
         $nombre =~ /[$caractere_speciaux]/  # contient un caractere special
         ) {
        print "$nombre : OK\n";          
    }
    else {
      print "$nombre : PAS OK\n";
    }

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    ok merci

    juste pour savoir le \w marche t'il ou non pour les car spéciaux

    je n'ai pas de possibilités de test la c'est pour ça que je demande

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    pour tes caracteres speciaux, tu les mets ainsi dans le code que je t'ai filé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $caractere_speciaux = quotemeta('&{}()èù%*µ@'); # caracteres speciaux
    \w ne reconnait que les lettres de l'alphabet de a à z, plus le _ ([a-zA-Z0-9_), donc il ne reconnaitra pas les @ ou é, etc etc

Discussions similaires

  1. [POO] Problème de test suite à un explode()
    Par Neii Mad dans le forum Langage
    Réponses: 5
    Dernier message: 06/07/2006, 15h45
  2. problème sur test if
    Par flo456 dans le forum ASP
    Réponses: 4
    Dernier message: 19/04/2006, 12h50
  3. [REGEXP] Problème de caractère
    Par yakanet dans le forum Langage
    Réponses: 4
    Dernier message: 04/01/2006, 02h42
  4. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  5. Réponses: 4
    Dernier message: 16/06/2005, 15h37

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