Регулярное выражение в Java для проверки имени пользователя

Я пытаюсь цепочки имен пользователей в Java со следующими правилами:

  • Длина>=3
  • Допустимые символы: az, AZ, 0-9, точки, тире и подчеркивания.

Может ли кто-нибудь помочь мне с регулярным выражением?

4 ответа

Решение

Попробуйте это регулярное выражение:

^[a-zA-Z0-9._-]{3,}$

Решение Саркирока верное, но забыл тире и точка должна быть сброшена.

Вы должны добавить как \, чтобы избежать его, но помните, что в 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 

}

На основе примера здесь.

Как насчет:

    username.matches("[a-zA-Z0-9.\\-_]{3,}")
Другие вопросы по тегам