如何使用REGEX验证EditText?

时间:2019-01-11 17:36:38

标签: java android

我要根据以下要求验证用户名:

  1. 只接受字符或数字
  2. 至少一个字符

我尝试过

 public boolean validateFormat(String input){

        return Pattern.compile("^[A-Za-z0-9]+$").matcher(input).matches();   
 }

我该怎么办?

2 个答案:

答案 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));
    }
}