2014-10-12 46 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"); 

    }