猿问

如何匹配包含至少 7 个不同数字的数字?

我需要一个正则表达式模式来匹配任何非重复数字超过 7 位的数字。例如它必须匹配:


1234567

122345678

但不匹配:


1222345

例如,这个数字中的非重复数字122345678是,8而整个数字有9. 但是这个数字中的非重复数字:11111222345只是5。这种模式不这样做:


/[0-9]{7,}/

我希望它计算非重复数字,而不是忽略任何具有重复数字的数字。


浮云间
浏览 168回答 1
1回答

米脂

我如何理解您的问题是,您想提取至少由 7 个不同数字组成的数字。将用于preg_match_all()结合简单的非正则表达式检查来获取数字:if(preg_match_all('~\d{7,}~', $str, $out) > 0){  $res = array_filter($out[0], function($v) {    return count(array_unique(str_split($v))) >= 7;  });}“重复”这个词肯定会导致混淆。还有“超过 7 位数字”,至少是 8 位。
随时随地看视频慕课网APP
我要回答