Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1795 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Expression reguliere, je debute...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Expression reguliere, je debute...

n°1298602
imnotgood
Posté le 03-02-2006 à 15:23:14  profilanswer
 

Bonjour a tous,
 
Voila je debut avec les expressions regulieres.
Seulement je n arrive pas a faire ce que j'ai envie :(
 
Ce que j'essaie de faire :
 
verifier si une chaine contient au moins 2 minuscules, 2 majuscules, 2 chiffres et que la chaine fasse au moins 8 caracteres (les ?.;:...... pouvant etre utilises).
 
[0-9]{2,}[a-z]{2,}[A-Z]{2,}
 
--> ca impose un ordre. 11aaAA. Comment faire pour verfier cela pour 1a1AaA
 
D'avance merci

mood
Publicité
Posté le 03-02-2006 à 15:23:14  profilanswer
 

n°1299155
Papy Octet
Posté le 04-02-2006 à 20:13:48  profilanswer
 

Salut imnotgood,
 
Si tu veux obtenir une réponse à ta question, tu devrais nous dire dans quel langage tu veux exécuter cette recherche. Il y a tellement de possibilités que personne ne va s'aventurer à te répondre sans cette précision.
 
Désolé. Complète ta question. Tu auras plus de chances de recevoir une réponse.
 
A+

n°1299248
Zavie
Test, du travail de pro !
Posté le 05-02-2006 à 02:41:03  profilanswer
 

Je me trompe peut-être mais je ne crois pas que les expressions régulières permettent de définir un motif aussi complexe. Cela dit si quelqu'un a la solution je suis curieux de la voir !


---------------
Viendez vous battre à Prologin \o/
n°1299252
masklinn
í dag viðrar vel til loftárása
Posté le 05-02-2006 à 02:56:37  profilanswer
 

Citation :

'Some people, when confronted with a problem, think "I know, I'll use regular expressions".  Now they have two problems.'  -- Jamie Zawinski, comp.lang.emacs

Message cité 5 fois
Message édité par masklinn le 05-02-2006 à 02:56:48

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1299592
imnotgood
Posté le 06-02-2006 à 09:22:11  profilanswer
 

Bonjour,
 
Le site je le programme en php...
J'ai pense aux expression regulieres car le faire par programmation php sera vraiment pas propre. enfin je pense....
 
j'ai encore regarde ce week end mais pas moyen de trouver sans imposer un ordre :(
Si quelqu'un pouvait me mettre sur la piste ce serait vraiment tres sympa...
 
Merci ;)

n°1299610
imnotgood
Posté le 06-02-2006 à 09:50:08  profilanswer
 

C'est encore moi,
J'ai trouve :D
 

Code :
  1. <?PHP
  2. $pass = "a1Aa1A";
  3. $chiffres = 2;
  4. $lettresMin = 2;
  5. $lettresMaj = 2;
  6. try
  7. {
  8.     if(!preg_match_all("^[0-9]^",$pass,$out) || count($out[0])<$chiffres)
  9.         throw new Exception("Pas assez de chiffres",1);
  10.     if(!preg_match_all("^[a-z]^",$pass,$out) || count($out[0])<$lettresMin)
  11.         throw new Exception("pas assez de lettres minuscules",2);
  12.     if(!preg_match_all("^[A-Z]^",$pass,$out) || count($out[0])<$lettresMaj)
  13.         throw new Exception("pas assez de lettres majuscules",3);
  14.     print("<p><b>OK</b></p>" );
  15. }
  16. catch(Exception $e)
  17. {
  18.     print("<p><b>".$e->getMessage()."</b></p>" );
  19. }
  20. ?>


 
J'ai ecrit ca, ca fonctionne tres bien...
Mais avez vous d'autres idees plus adaptees ? Ou alors celle ci est suffisament propre ?
 
Merci ;)


Message édité par imnotgood le 06-02-2006 à 09:52:39
n°1299618
anapajari
s/travail/glanding on hfr/gs;
Posté le 06-02-2006 à 09:59:08  profilanswer
 

Si tu veux vraiment tout faire en une seule regex, tu aurais pu faire ainsi:

Code :
  1. $sPass = str_split($pass);
  2. sort($sPass);
  3. $sPass = join($sPass,'');
  4. if ( preg_match("/(\d{2,})([A-Z]{2,})([a-z]{2,})/", $sPass)){
  5.   print 'Ok';
  6. }


En gros on recopie dans $sPass $pass sauf que toutes les lettres sont triées dans le bon ordre, donc tu te poses plus de questions pour ta regex.
 
Mais maintenant comme tu l'as dis Masklinn, pas sur que ça soit la meilleure idée d'utiliser des regex ...


Message édité par anapajari le 06-02-2006 à 09:59:38
n°1299622
imnotgood
Posté le 06-02-2006 à 10:01:48  profilanswer
 

masklinn a écrit :

Citation :

'Some people, when confronted with a problem, think "I know, I'll use regular expressions".  Now they have two problems.'  -- Jamie Zawinski, comp.lang.emacs



 
 
C'est vrai qu'il vaut mieux reinventer ce qui existe deja...

Message cité 1 fois
Message édité par imnotgood le 06-02-2006 à 10:03:27
n°1299623
imnotgood
Posté le 06-02-2006 à 10:02:52  profilanswer
 

merci bcp ;)
 
je ne vois pas de facon plus adaptee a par reecrire ce qui existe deja...

n°1299756
masklinn
í dag viðrar vel til loftárása
Posté le 06-02-2006 à 13:13:28  profilanswer
 

imnotgood a écrit :

C'est vrai qu'il vaut mieux reinventer ce qui existe deja...


Ca n'a strictement aucun lien, les expressions rationnelle sont quelque chose de complexe, extrèmement difficile à débugger et franchement pas intéressant si deux lignes de code supplémentaires permettent de faire la même chose sans.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Expression reguliere, je debute...

 

Sujets relatifs
[PHP] - Aide : Expression RégulièreManipulation d'expression icalendar
expression reguliere preg_replaceAppel variable XSL dans une expression XPath
probleme d'expression reguliereExpression régulière casse-tête
Plus de sujets relatifs à : Expression reguliere, je debute...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR