时间:2021-07-01 10:21:17 帮助过:16人阅读
仅用正则无法匹配出连续数字
仅用正则无法匹配出连续数字
应该用什么办法解决呢?
第一个78不也是连续的吗? 第二个89和23不也是连续的吗? 为什么不要?
“386387”算连续的吗? 要匹配吗
①$number = 1234784;
正则匹配结果是:1234
②$number = 389456723;
正则匹配结果是:4567
看来是匹配连续4位的么,如果是,那无非是有数的几种情况:
$s = 389456723;
//连续4位
$r = '(1234|2345|3456|4567|5678|6789)';
preg_match_all('/'.$r.'/', $s, $m);
print_r($m[0]);
//连续3位以上
$r = '(1234|2345|3456|4567|5678|6789|123|234|345|456|567|678|789)';
preg_match_all('/'.$r.'/', $s, $m);
print_r($m[0]);
//2位以上的就不用示范了吧
看来是匹配连续4位的么,如果是,那无非是有数的几种情况:
$s = 389456723;
//连续4位
$r = '(1234|2345|3456|4567|5678|6789)';
preg_match_all('/'.$r.'/', $s, $m);
print_r($m[0]);
//连续3位以上
$r = '(1234|2345|3456|4567|5678|6789|123|234|345|456|567|678|789)';
preg_match_all('/'.$r.'/', $s, $m);
print_r($m[0]);
//2位以上的就不用示范了吧 就是这个!good!