Как решить регулярное выражение исключения для пароля в Java

Я пытаюсь реализовать метод, который проверяет, уважает ли пароль формат, используя String.match.

Проблема в том, что я получаю это:

Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed counted closure near index 31
[a-zA-Z._]@[a-zA-Z.].[a-zA-Z]{2-5}

Это регулярное выражение, которое я использую сейчас:

"^ (? =.[0-9]) (? =.[Az]) (? =.[AZ]) (? =.[@ # $% ^ & + =]) (? = \ S + $). {8}$"

@Override
public boolean checkPassword(Person person) {
    if(person.getPassword().matches("^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$"))
        return true;
    return false;
}

0 ответов

Другие вопросы по тегам