正则表达式 - 具有不同的数字

时间:2011-12-06 10:39:41

标签: regex

我如何使用正则表达式来检查我的号码是否有不同的数字。 例如:数字:5554可以,但数字:5555不行。

5 个答案:

答案 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();

然后检查计数。