Я пишу несколько юнит-тестов для проверки паролей и тому подобное. Одним из случаев является обеспечение того, что пароли содержат специальные символы, один верхний регистр, один нижний регистр и один ди git.
Я написал тест с использованием регулярных выражений для проверки специальных символов, таких как:
Pattern p = Pattern.compile("[_]+[!]+[$]+[%]+[\\^]+[&]+[*]+[(]+[)]+[.]+[-]+[+]+");
Matcher m = p.matcher("__!$%%%^^&**().-++");
boolean b = m.matches();
System.out.println(b);
Мне пришлось убежать от ^ (символ моркови), но, похоже, нет другого символа - это правильно? Я просто каждый вход в отдельности, и, кажется, проверить правильно, хотя синтаксис казался немного более запутанным, чем я первоначально предполагал? использует Regex лучший способ добиться этой проверки и метод компиляции, как я это использовал?
Я возьму любые советы, спасибо!