Я не очень хорошо разбираюсь в создании сложного RegEx. Я скопировал следующий из другого источника, в целях обеспечения соблюдения несколько предела пароля для приложения:Ограничение длины символа RegEx с ошибкой модульного теста
// 8 to 20 char, one digit, one letter
public static final String GOOD_PASSWORD_REGEX =
"(^(?=.{8,20})(?=.*[a-zA-Z])(?=.*[\\d]).*$)";
Между тем, этот тест блока не:
String tooLongPassword = "asdfghjkl123456789qwe"; // 21 characters
assertFalse(tooLongPassword.matches(ValidationContants.GOOD_PASSWORD_REGEX));
Это один из немногих подобных тестовые случаи Я бегу против этого RegEx, включая других, без буквы, цифры и т. д., и все остальные проходят.
Где ошибка, пожалуйста?