Java中的正则表达式用于验证用户名

时间:2011-07-21 20:36:51

标签: java regex validation

我正在尝试Java中的用户名链,遵循以下规则:

  • 长度> = 3
  • 有效字符:a-z,A-Z,0-9,点,短划线和下划线。

有人可以用正则表达式帮我吗?

4 个答案:

答案 0 :(得分:15)

试试这个正则表达式:

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

答案 1 :(得分:5)

Sarkiroka解决方案是正确的,但忘了破折号并且该点应该被转移。

你应该添加为\来逃避它,但请注意,在Java中反斜杠本身就是用来转义的,所以如果你在java文件中编写正则表达式,你应该写

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

请注意双反斜杠。

答案 2 :(得分:1)

顺便说一句,如果有额外的要求:用户名的起始字母必须是一个字符,你可以写

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

    } else {
        // No match 

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

}

基于示例here

答案 3 :(得分:0)

怎么样:

    username.matches("[a-zA-Z0-9.\\-_]{3,}")