我正在尝试Java中的用户名链,遵循以下规则:
有人可以用正则表达式帮我吗?
答案 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,}")