Я использую регулярные выражения в Java для проверки ввода поля пароля. Ниже приведен код для проверки пароля:
final Pattern check = Pattern.compile( "^[a-z0-9A-Z!$%*()-_[]{};:@#<>,./?\\|]+$");
if (!check.matcher(password).matches()) {
errors.put("password", "Invalid input");
}
Когда я отправляю ввод, содержащий символы, например%, генерируется следующее исключение:
исключение
java.util.regex.PatternSyntaxException: незакрытый символьный класс рядом
index 37 ^ [a-z0-9A-Z! $% * () -_ [] {};: @ # <>,. /? \ |] + $
^
Я уже использовал другие выражения регулярных выражений в этом же коде, и они прекрасно работают ... Только эта часть доставляет мне проблемы.
Кто-нибудь из вас может знать причину этой ошибки?
Заранее спасибо за помощь!