Я пытаюсь написать регулярное выражение для проверки токена.
my token has a following structure
:
- 3 или более [0-9]
digits
- 5 или более [az]
small alpha
- 2 или более [# @]
special characters
- 5 или более [AZ]
upper alpha
(необязательно ?
) могут существоватьили нет.
Примечание: необязательные символы [AZ] могут присутствовать в некоторых токенах, но могут отсутствовать в некоторых, а если они существуют в токене, они должны быть между 5 or more
разами.
- длина токена варьируется от
minimum of 6 to a max of 30
нескольких примеров допустимых / недействительных совпадений:
token1 : t4xa@ui13p#o6
breakdown : there are 7 [a-z] , 2 special chracter[@#] , 4 digits [0-9]
VALID MATCH: True
token2: 3@piy13Qx9#13@z1337
breakdown: there are 5 [a-z] , 3 special character [@#] , 10 digits [0-9] and 1 [A-Z](which is optional)
VALID MATCH: False (because `[A-Z]` exist in token but it exist for `1` time, it should exist atleast of 5 or more.)
token3: 3@piy1ABC3Qx9#13@DEGFz1337
breakdown: there are 5[a-z], 7 [A-Z] , 10 digits [0-9]
VALID MATCH: True
- Пока мне удалосьнаписать регулярное выражение для проверки как минимум одной цифры, одной заглавной буквы, хотя бы одной строчной буквы, хотя бы одного специального символа.
^(?=.*[\d])(?=.*[A-Z])(?=.*[a-z])(?=.*[@#])[\w\d@#]{6,30}$