Регулярное выражение в Java для проверки имени пользователя - PullRequest
6 голосов
/ 22 июля 2011

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

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

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

Ответы [ 4 ]

15 голосов
/ 22 июля 2011

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

^[a-zA-Z0-9._-]{3,}$
5 голосов
/ 22 июля 2011

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

Вы должны добавить как \, чтобы избежать его, но помните, что в Java обратная косая черта сама по себе используется для экранирования, поэтому, если вы пишете регулярное выражение в java-файле, вы должны написать

String regex = "[a-zA-Z0-9\\._\\-]{3,}"; 

Обратите внимание на двойную обратную косую черту.

1 голос
/ 04 декабря 2015

Кстати, если есть дополнительное требование: начальная буква имени пользователя должна быть символом, вы можете написать

try {
    if (subjectString.matches("\\b[a-zA-Z][a-zA-Z0-9\\-._]{3,}\\b")) {
        // Successful match 

    } else {
        // No match 

    }
} catch (PatternSyntaxException ex) {
    // Invalid regex 

}

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

0 голосов
/ 22 июля 2011

А как же:

    username.matches("[a-zA-Z0-9.\\-_]{3,}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...