Znalazłem tutaj świetną odpowiedź z wyjaśnieniem, aby upewnić się, że dany ciąg zawiera co najmniej jeden znak z każdej z poniższych kategorii.
charakter Lowercase, wielką literą, Digit, Symbol
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$
Krótkie wyjaśnienie:
^
// początek napisu
(?=.*[a-z])
// wykorzystywać pozytywne spojrzenie w przyszłość aby sprawdzić, czy istnieje co najmniej jedna mała litera:
(?=.*[A-Z])
// wykorzystywać pozytywne spojrzenie w przyszłość, aby zobaczyć, jeśli co najmniej jeden górny literę istnieje
(?=.*\d)
// wykorzystywać pozytywne spojrzenie w przyszłość, aby zobaczyć, jeśli co najmniej jedna cyfra istnieje
(?=.*[_\W])
// wykorzystywać pozytywne spojrzenie na przodzie sprawdzić, czy przynajmniej jeden znak podkreślenia lub nie istnieje słowo
.+
// pochłaniają cały ciąg
$
// koniec sznurka
Mam nadzieję, że ci pomogę.
Proszę określić, co masz na myśli przez „szczególnym charakterze” –