您好我想以形成像Regex的字符組合
組合字母的字符組合, 標號(2) 特殊字符(1) 最少6個字符
我嘗試使用
((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,})
但我無法做出如上所述的組合。怎麼做。?
您好我想以形成像Regex的字符組合
組合字母的字符組合, 標號(2) 特殊字符(1) 最少6個字符
我嘗試使用
((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,})
但我無法做出如上所述的組合。怎麼做。?
你的正則表達式基本上可以。
你沒有提供你正在使用正則表達式引擎的類型,所以,除非它的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
}
這是Java正則表達式 – user1321824 2012-04-18 07:08:03
你想創建組合或搭配組合? – 2012-04-18 06:59:39
一些示例輸入和預期匹配將會很有用。 – alan 2012-04-18 07:01:31