regex Erklärung

Loveboat

Erfahrenes Mitglied
Hallo zusammen,

ich bin schon seit einiger Zeit dran, meine Kennwortüberprüfung zu programmieren. Diese sollte prüfen, ob min. 1 Großbuchstabe, min. 1 Zahl und eine min. Länge von 8 Zeichen hat.
Leider waren meine Versuche nicht erfolgreich.

Ich fand daraufhin den "RegexBuddy" welcher mir folgende Anweisung für diese Art von Überprüfung ausgab.

Code:
"/\A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{8,}\z/"

Mein Problem:
Ich verstehe die nicht ganz..... :-(

Grundlegende Verständnisse:
========================

Delimiter
Code:
/

Was ist das?
Code:
\A


Was ist das?
Code:
?=


Charakterklassen, a-z, A-Z, 0-9 sowie -_ und das beliebig oft (0 oder mehrmals)
Code:
[-_a-zA-Z0-9]*

Was bedeutet das Fragezeichen? Gehört es noch zum Codeschnipsel vorher? Das bedeutet ja 0x oder 1x.
Code:
?[A-Z]

Delimiter
Code:
/

Könnte mir bitte jemand diese Kombi erklären? Möchte das ja nicht blind hinnehmen, sondern auch verstehen.

Danke und Gruß
Loveboat
 
Pattern Syntax
Und versteh ich das richtig? Du hast das mit einem Generator gemacht *schauder*

\A
start of subject (independent of multiline mode)

?=
ist ein Teil von (?= ) Geneaures siehe auf der Pattern-Seite oder in jedem x-Beliebigen Regex-Buch (Thema 'positive assertion')

[-_a-zA-Z0-9]*
Korrekt

?[A-Z]
Keine Ahung was das ? an dieser Stelle verloren hat. Ist dieser RegexBuddy wirklich für PHP-Regex?
 
ja er ist für PHP, es ****t auch wunderbar..aber ich würde es gerne auch verstehen, oder vielleicht geht es auch anders.
 
Zurück