如112,123,454,018都是正确的
而111就不正确
6 个解决方案
#1
三位数倒好办
$a = array('112', '123', '454', '018', '111');
$a = preg_grep('/(\d)\1{2}/', $a, PREG_GREP_INVERT);
print_r($a);
//输出
Array
(
[0] => 112
[1] => 123
[2] => 454
[3] => 018
)
$a = array('112', '123', '454', '018', '111');
$a = preg_grep('/(\d)\1{2}/', $a, PREG_GREP_INVERT);
print_r($a);
//输出
Array
(
[0] => 112
[1] => 123
[2] => 454
[3] => 018
)
#2
if(preg_match('/(\d)\1{2}/', $s))
echo '不正确';
else
echo '正确';
echo '不正确';
else
echo '正确';
#3
我要的是正则,而你用的是preg_grep的不匹配模式,难道就没有直接满足要求的正则?
#4
我自己想了个
不知道有没有比这个更好的
^(?!(\d)\1{2})\d{3}$
不知道有没有比这个更好的
#5
那你是想匹配一样的还是不一样的
就正则来讲,匹配三个一样的,然后反义,和你的需求不是一致的?
就正则来讲,匹配三个一样的,然后反义,和你的需求不是一致的?
#6
如果3位数只想实现这个功能,何苦用正则,用这个更快:
$a = '012';
if ($a[0] != $a[1] || $a[0] != $a[2] || $a[1] != $a[2]) {
echo 'yes';
} else {
echo 'no';
}
$a = '012';
if ($a[0] != $a[1] || $a[0] != $a[2] || $a[1] != $a[2]) {
echo 'yes';
} else {
echo 'no';
}
#1
三位数倒好办
$a = array('112', '123', '454', '018', '111');
$a = preg_grep('/(\d)\1{2}/', $a, PREG_GREP_INVERT);
print_r($a);
//输出
Array
(
[0] => 112
[1] => 123
[2] => 454
[3] => 018
)
$a = array('112', '123', '454', '018', '111');
$a = preg_grep('/(\d)\1{2}/', $a, PREG_GREP_INVERT);
print_r($a);
//输出
Array
(
[0] => 112
[1] => 123
[2] => 454
[3] => 018
)
#2
if(preg_match('/(\d)\1{2}/', $s))
echo '不正确';
else
echo '正确';
echo '不正确';
else
echo '正确';
#3
我要的是正则,而你用的是preg_grep的不匹配模式,难道就没有直接满足要求的正则?
#4
我自己想了个
不知道有没有比这个更好的
^(?!(\d)\1{2})\d{3}$
不知道有没有比这个更好的
#5
那你是想匹配一样的还是不一样的
就正则来讲,匹配三个一样的,然后反义,和你的需求不是一致的?
就正则来讲,匹配三个一样的,然后反义,和你的需求不是一致的?
#6
如果3位数只想实现这个功能,何苦用正则,用这个更快:
$a = '012';
if ($a[0] != $a[1] || $a[0] != $a[2] || $a[1] != $a[2]) {
echo 'yes';
} else {
echo 'no';
}
$a = '012';
if ($a[0] != $a[1] || $a[0] != $a[2] || $a[1] != $a[2]) {
echo 'yes';
} else {
echo 'no';
}