2012-04-18 70 views
0

您好我想以形成像Regex的字符組合

組合字母的字符組合, 標號(2) 特殊字符(1) 最少6個字符

我嘗試使用

((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,}) 

但我無法做出如上所述的組合。怎麼做。?

+0

你想創建組合或搭配組合? – 2012-04-18 06:59:39

+1

一些示例輸入和預期匹配將會很有用。 – alan 2012-04-18 07:01:31

回答

1

你的正則表達式基本上可以。

你沒有提供你正在使用正則表達式引擎的類型,所以,除非它的Java或不支持逐字字符串另一種語言,你可能需要更改\\d\d,或正則表達式的那部分會嘗試匹配一個文字反斜槓,後跟一個d

此外,您應該將正則表達式錨定到字符串的開頭以提高性能。在Java中,.matches()方法將爲您隱式執行此操作。

然後,你的正則表達式只需要一個數字,但是兩個ASCII字母(一個小寫,一個大寫)。那真的是你想要的嗎?

我會理解你的要求是這樣的:

if (subjectString.matches("(?=.*\\d.*\\d)(?=.*[A-Za-z])(?=.*[@#$%]).{6,}")) { 
    // Password matches the criteria 
} else { 
    // Password doesn't match the criteria 
} 
+0

這是Java正則表達式 – user1321824 2012-04-18 07:08:03