Для меня по логике перед loohahead должны быть символы
ну будем считать, что там есть "символ" )
"начало строки"
^
3 "смотрящих вперед":
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])
(?=.*\d)
- обязательно впереди от начала строки должна быть хотябы 1 цифра, не важно в каком именно месте
т.е. сперва идет
.*
, где
.
- любой символ и и квантор
*
0 или "много" раз, а потом цифра
\d
следующее вперед смотрящее
(?=.*[a-z])
- обязательно 1 маленькая буква латинского алфавита
(?=.*[A-Z])
- обязательно 1 большая буква латинского алфавита
И второй вопрос. Почему этот регэксп работает в случае если меняешь местами такие символы:
abC123, Cab123, 123Cab - то есть порядок прописных строчных и цифр не важен, но ведь группы lookahead идут по порядку
тут "смотрящее вперед" идет просто от начала, порядок не важен
оно больше как проверка наличия того или иного символа
https://regex101.com/r/IcUFYB/1
здесь все смотрящие проверяют наличие
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])
после слова
пример-
если там есть слово "пример-", то в таком случае вас не будет смущать регулярка? :)
п.с. в свое время очень не мог вникнуть в эти все "смотрящие вперед/назад"
п.п.с очень хорошо с регулярками, кончено, разбираться на готовых примерах, в особенности когда есть такие онлайн-инструменты как
https://regex101.com