我如何使用正则表达式来检查我的号码是否有不同的数字。 例如:数字:5554可以,但数字:5555不行。
答案 0 :(得分:2)
此正则表达式检查所有数字是否相同。然后采取相反的方法,你会发现你的号码是否有不同的数字。
^(\d)\1*$
此正则表达式检查至少一个数字是否不同:
(\d)((?!\1)\d)+
带有RegularExpression属性的C#中的编辑
[RegularExpression(@"(\d)((?!\1)\d)+")]
答案 1 :(得分:2)
在任何数字的 perl 中:
/^(\d)\1*$/
一些测试:
script.pl 的内容:
use warnings;
use strict;
while ( <DATA> ) {
print unless /^(\d)\1*$/;
}
__DATA__
55555
56
5556
56565
5
6555
55655
55
在linux机器上运行脚本:
perl script.pl
结果:
56
5556
56565
6555
55655
答案 2 :(得分:1)
不要使用正则表达式。
答案 3 :(得分:1)
四位数字不相同:
([0-9])(?!\1\1\1)[0-9]{3}
负面预测中的反向引用在某些正则表达式实现中不起作用。我用grep -P
尝试了这个正则表达式。
答案 4 :(得分:0)
var a = 5555;
var b = 5554;
var a1 = a.ToString().ToCharArray().Distinct().Count();
var b1 = b.ToString().ToCharArray().Distinct().Count();
然后检查计数。