使用正则表达式检查字符串至少有两个数字

时间:2014-10-23 06:46:15

标签: java regex

在挖掘堆栈溢出后,我发现了一些代码,用于检查字符串是否为字母数字,且长度为8个字符。它很棒。现在如果它包含至少2个数字,我该如何使它返回true?我想我必须在某处添加\d{2}

String pattern = "^[a-zA-Z0-9]*$";

if (s.matches(pattern) && s.length() >= 8){
    return true;
}
return false;

3 个答案:

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

以积极向前的态度断言:

^(?=(?:\D*\d){2})[a-zA-Z0-9]*$

这是regex demo