Hi,
3 positive Lookaheads, je einer für .*[a-z] und .*[A-Z] und .*[0-9], und dann noch normal auf [1]+$ (+ ggf. durch {x,y} für min/max-Länge prüfen.
Warum willst du denn die restlichen Zeichen ausschließen? Es war nicht gefordert, nur a-zA-Z0-9 zuzulassen.
Hatte ich übersehen, wäre aber ja durchaus üblich, daß ein Paßwort aus einem bestimmten Zeichensatz bestehen muß, und aus n von m Zeichengruppen mind. eins vorhanden sein muß.
Ansonsten hatte ich das Handbuch so verstanden, dass PHP Assertions mit variabler Länge nicht mag.
Wie Chris schon schrieb: bei Lookbehinds.
Problem dabei ist, daß die Regex-Engine wissen will, ab welcher Position sie suchen soll. Bei Lookahead ist's klar: ab der aktuellen Position. Bei Lookbehind ist das nur klar, wenn die Assertion einen String fixer Länge hat (aktuelle Position minus fixe Länge).
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
a-zA-Z0-9 ↩︎