Jonny 5: Was bedeutet diese Regex?

Beitrag lesen

Hallo Jan!

[1]*(?=[A-Za-z0-9]{8,})(?=[A-Za-z0-9]*[0-9])(?=[A-Za-z0-9]*[a-z])(?=[A-Za-z0-9]*[A-Z])[A-Za-z0-9]*$

Nach meinem Verständnis hätte man das doch auf "[2]{8,}$" verkürzen können, oder übersehe ich etwas?

Nach meinem auch. Und am Start ^ die lookaheads jeweils 1x ausführen können:

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9]{8,}$  
#     | muss eine Ziffer enthalten  
#                | muss einen Kleinbuchstaben enthalten  
#                           | muss einen Großbuchstaben enthalten  
#                                 | darf nur aus [A-Za-z0-9] bestehen (mindestens 8)  

Duch die Verwendung von shorthands könnte man die Länge des Suchmusters noch weiter reduzieren:

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[^\W_]{8,}$  

lG, Jonny 5


  1. A-Za-z0-9 ↩︎

  2. A-Za-z0-9 ↩︎