Tony,
Tu peux effectuer le test en une seule regexp en utilisant les expressions de longueur nulle.
Donc non pas rechercher l'expression <des minuscules, et des majuscules, et des chiffres, et des caractères spéciaux>, mais en cherchant "quoi que ce soit" qui soit suivi par <tout ça>. Ca permet alors de s'affranchir de l'ordre d'apparition de chacun de ces sous-expressions dans ta chaîne.
Par exemple:
if ($s =~ m/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[#\(\)éàç])/) { print "Matches!"; }
(caractères spéciaux à revoir)
Partager