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

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

 String pattern = "^[a-zA-Z0-9]*$"; if (s.matches(pattern) && s.length() >= 8){ return true; } return false; 

您不需要单独的if条件。 单个正则表达式将为您完成所有操作。

 String pattern = "^(?=.*?\\d.*\\d)[a-zA-Z0-9]{8,}$"; 

你可以在一行中完成:

 return s.matches("(?=(.*?\\d){2})[a-zA-Z0-9]{8,}"); 

积极前瞻断言:

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

这是一个正则表达式演示 。