在挖掘堆栈溢出后,我发现了一些代码,用于检查字符串是否为字母数字,且长度为8个字符。它很棒。现在如果它包含至少2个数字,我该如何使它返回true?我想我必须在某处添加\d{2}
。
String pattern = "^[a-zA-Z0-9]*$";
if (s.matches(pattern) && s.length() >= 8){
return true;
}
return false;
答案 0 :(得分:3)
您不需要单独的if条件。一个正则表达式将为你做所有。
String pattern = "^(?=.*?\\d.*\\d)[a-zA-Z0-9]{8,}$";
答案 1 :(得分:3)
您可以在一行中完成:
return s.matches("(?=(.*?\\d){2})[a-zA-Z0-9]{8,}");
答案 2 :(得分:1)