Регулярное выражение в Java для проверки имени пользователя
Я пытаюсь цепочки имен пользователей в Java со следующими правилами:
- Длина>=3
- Допустимые символы: az, AZ, 0-9, точки, тире и подчеркивания.
Может ли кто-нибудь помочь мне с регулярным выражением?
4 ответа
Решение
Решение Саркирока верное, но забыл тире и точка должна быть сброшена.
Вы должны добавить как \, чтобы избежать его, но помните, что в Java обратный слеш сам по себе используется для экранирования, поэтому, если вы пишете регулярное выражение в файле Java, вы должны написать
String regex = "[a-zA-Z0-9\\._\\-]{3,}";
Обратите внимание на двойную обратную косую черту.
Кстати, если есть дополнительное требование: начальная буква имени пользователя должна быть символом, вы можете написать
try {
if (subjectString.matches("\\b[a-zA-Z][a-zA-Z0-9\\-._]{3,}\\b")) {
// Successful match
} else {
// No match
}
} catch (PatternSyntaxException ex) {
// Invalid regex
}
На основе примера здесь.