^. (? =. {15}) (? =. \ г) (? =. [AZ]) (? =. [AZ]) ( ? =. [! @ # $% ^ & + =]). * $
Это регулярное выражение, которым я сейчас пользуюсь, которое оценивает по 1 каждому: верхняя, нижняя, цифра и спецпредложения по моему выбору. Вопрос, который у меня есть, как сделать так, чтобы он проверял 2 из каждого из них? Также я спрашиваю, потому что, казалось бы, трудно написать тестовый пример для этого, поскольку я не знаю, оценивает ли он только первый набор критериев, в которых он нуждается. Это пароль, однако требуется, чтобы он был в форме регулярного выражения в зависимости от используемого нами пакета.
EDIT
Ну, так как я спешу проверить выражение, которое я забыл, чтобы проверить длину моей строки. Спасибо Кену и Гамбо за помощь в этом.
Это код, который я выполняю:
Я прошу прощения, так как регулярное выражение не моя область.
Пароль, который я использую, является следующей строкой "$$ QiouWER1245", поведение, которое я испытываю в данный момент, заключается в том, что он случайным образом выбирает, пройти или не пройти. Есть мысли по этому поводу?
Pattern pattern = Pattern.compile(regEx);
Matcher match = pattern.matcher(password);
while(match.find()){
System.out.println(match.group());
}
Из того, что я вижу, если он оценивается как true, он вернет мне значение в пароле, иначе это пустая строка.