使用正则表达式检查字符串至少有两个数字
在挖掘堆栈溢出后,我发现了一些代码,用于检查字符串是否为字母数字且长度为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]*$
这是一个正则表达式演示 。