2014-10-12 97 views
1

我有下面的正则表达式。没有重复字符的正则表达式

^((?=.{10,32}$)(?=.*[A-Z])(?=.*[a-z])) 

正则表达式具有以下功能:

  1. 密码将包含至少(1)大写字母
  2. 密码将包含至少(1)小写字母
  3. 长度的密码为10到32之间

我想添加一个验证。我不想要任何连续重复的字符。

你能帮我吗?

+1

你不想有重复字符后面的字符串即'ABCDA'在备份即'AAA'或地方? – hwnd 2014-10-12 03:06:25

+0

我不希望charcter重复背靠背。如果在任何地方重复,那么很好 – 2014-10-12 03:11:47

回答

2

您可以使用负面预测来做到这一点。

^(?=.{10,32}$)(?=.*[A-Z])(?=.*[a-z])(?!.*(.)\1).+$ 

Live Demo

1

这将匹配任何对相同的字符:

"(.)\1" 

在这里,小程序。

static void Main(string[] args) 
    { 
     string a = "12223"; 
     string b = "P12345"; 


     bool z = Regex.IsMatch(a,@"(.)\1"); 
     bool x = Regex.IsMatch(b,@"(.)\1"); 

    }