Cytat
Rozumiem, że hasło może składać się z:...
Nie może tylko musi.
Cytat
Ale tak jak napisałem nie wiem po co jest na początku i na końcu "/"
Wyrażenia regularne ujmuje się w znaki odwrotnego ukośnika, który pełni rolę znaku ograniczającego. Czyli początek i koniec wyrażenia.
Cytat
szukam wszędzie i nigdzie nie mogę zobaczyć co oznacza np "?=" oraz ".*"
Tutaj mamy zastosowany pewien trick z "górnej półki".
Normalnie:
? - oznacza zero lub jedno wystąpienie
* - oznacza zero lub więcej wystąpień
. - oznacza dowolny jeden znak
Ale w naszym przypadku te symbole mają inne znaczenie.
(?= ) oznacza sprawdzenie dopasowania ale bez przesuwania się wzdłuż ciągu znaków. Wyrażenie jest sprawdzane ale dalsze matchowanie startuje od tego samego miejsca, jakby tego wcale nie było. Takie patrzenie w przod, bez ruszania sie z miejsca.
Tak wiec (?=.*[A-Z]) sprawdza, czy jest duza litera gdzies dalej, ale jestesmy nadal przed nia i mozemy sprawdzic czy jest tez cos innego.
Ta sztuczka pozwala na sprawdzenie wystąpień różnych znaków bez sprawdzania kolejności ich wystąpień. Czyli zarówno "A1b" jest poprawne jak i "Ba1".