Regex java passwort?
hi könnt ihr mir vllt helfen ich verstehe nicht was falsch ist:(
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Programmieren & Softwareentwicklung
dann lass uns mal "Inventur" machen...
- am Anfang ein Großbuchstabe = ^[A_Z] (Umlaute lass ich mal außen vor, dann würde es kompliziert)
- gefolgt von 3 Kleinbuchstaben = [a-z]{3} (wieder ohne Umlaute)
- für das 5 Zeichen besteht keine Anforderung außer das es keine Ziffer sein darf (und wohl auch kein Leerzeichen?) = [^\d\s] (hier kannst Du weiter unerwünschte Zeichen ausschließen)
- das 6 Zeichen muss die einzige Ziffer sein = \d
- Damit wir auf mindestens 8 Zeichen kommen brauchen wir noch mindesten 2 beliebige Zeichen die weder Ziffer noch Leerzeichen sind = [^\d\s] {2,}$
damit haben wir unser Pattern zusammen:
^[A-Z][a-z]{3}[^\d\s]\d[^\d\s]{2,}$
Wenn Leerzeichenerlaubt sind siehts so aus:
^[A-Z][a-z]{3}\D\d\D{2,}$
!!! Nicht vergessen die Backslashes in Java zu verdoppeln !!!
test:
"Adfs@1_€'²__" = true
"XopqS1blubb" = true
"Xopq_1xx" = true
"Xopq 1xx" = false
"Xopq91blubb" = false
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
Moin,
zwischen dem [A-Z][a-z]{3} kann noch etwas stehen, was keine Zahl ist, das fehlt im Regex.
Am Ende des Regex prüfst du nur auf [a-z A-z]. Da darf aber alles stehen, was keine Zahl ist.
/^[A-Z][a-z]{3}([^0-9]*){1}[0-9]([^0-9]*){2,}$/
So könnte man das auf die Schnelle formulieren, habs jetzt nicht getestet sondern nur aus dem Kopf geschrieben.
Tipp für das nächste Mal: Poste doch bitte Regex und Tests als Text, dann müssen wir, wenn wir dir helfen wollen, nicht mühsam alles abtippen.
Woher ich das weiß:Studium / Ausbildung – B.Sc. Informatik mit FR Software Engineering
([^0-9]*){1} das Sternchen (und damit die Gruppierung) ist zuviel des Guten
Damit erlaubst Du, dass die Gruppe Nichts enthalten kann . eine Gruppe die Nichts enthält repräsentiert Nichts, egal wie oft sie aufeinanderfolgt. Damit würde die einzige Ziffer auch an Position 5 möglich sein!
einmal alles außer Ziffer : [^0-9] oder \D
die Mengenangabe{1} ist quatsch...