Regexp Java pour valider mot de passe

Exemple simple utilisant des expressions régulières

public class mdpvalidation {
    public static void main(String[] args) {
      String mdp = "xwQRb23!"; 
      String pattern = "(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}";
      System.out.println(mdp.matches(pattern));
   }
}

Explications :

  • (?=.*[0-9]) un chiffre doit apparaître au moins une fois
  • (?=.*[a-z]) une lettre minuscule doit apparaître au moins une fois
  • (?=.*[A-Z]) une lettre majuscule doit apparaître au moins une fois
  • (?=.*[@#$%^&+=]) un caractère spécial doit apparaître au moins une fois
  • (?=\\S+$) aucun espace blanc n’est autorisé dans la chaîne entière
  • .{8,} au moins 8 caractères