我要根据以下要求验证用户名:
我尝试过
public boolean validateFormat(String input){
return Pattern.compile("^[A-Za-z0-9]+$").matcher(input).matches();
}
我该怎么办?
答案 0 :(得分:0)
/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/
答案 1 :(得分:0)
尝试使用此正则表达式:
^(\w|\d)+$
^
表示字符串的开头
$
表示字符串的结尾
\w
表示任何单词字符
\d
表示任何数字
|
是逻辑或运算符
无论如何,我建议您使用regex101.com之类的在线正则表达式测试器。快速测试正则表达式非常有用。
希望它可以提供帮助!
==更新==
在Java代码中:
final String regex = "^(\\w|\\d)+$";
final String string = "myCoolUsername12";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
if(matcher.matches()) {
// if you are interested only in matching the full regex
}
// Otherwise, you can iterate over the matched groups (including the full match)
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}