Regex pattern für passwort?

... komplette Frage anzeigen

1 Antwort

Warum denn mit Regex? Ich denke, das hier ist einfacher und übersichtlicher:

String passwd = "Abc+-*/123";

if (passwd.length() < 8) {
throw new IllegalArgumentException("too short");
}

int upper = 0;
int lower = 0;
int digit = 0;
int space = 0;
int other = 0;

for (char c : passwd.toCharArray()) {
if (Character.isUpperCase(c)) {
++upper;
} else if (Character.isLowerCase(c)) {
++lower;
} else if (Character.isDigit(c)) {
++digit;
} else if (Character.isSpaceChar(c)) {
++space;
} else {
++other;
}
}

if (upper < 1 || lower < 2 || digit < 1 || other < 1 || space > 0) {
throw new IllegalArgumentException("invalid format");
}

System.out.println("Juhuuu!");

Falls du das doch mit Regex machen willst, sage ich dir gleich, dass das ein sehr sehr langer und unübersichtlicher "Einzeiler" werden wird, wobei du vermutlich sogar mehrere davon brauchst.

Viel Spaß! :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von crouser121
08.12.2015, 01:19

Danke für deine Antwort. Leider ist sie nicht sehr hilfreich. Ich bin ausgelernter Java Programmierer und hätte ein paar Zeilen Code auch selbst geschafft :D es muss leider regex sein weil die regex-regel in einer Datenbank hinterlegt wird, auf die auch andere angrenzende Programme zugreifen. Die sind jedoch nicht in Java geschrieben. Regex ist übergreifend und wurde mir deshalb vorgeschrieben

1

Was möchtest Du wissen?