2015-06-19 92 views
-1

這個正則表達式與/^(\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*){6-20}$/匹配是什麼樣的字符串(密碼)?正則表達式 - 密碼

我試着使用6-20個字符的密碼,其中包括小寫字母[a-z],大寫字母[A-Z]和一個數字(0-9),但沒有快樂!

+2

您確定最後一部分是{6-20}嗎?這並不意味着「6到20次」,而是匹配字符串「{6-20}」。如果你想匹配「6到20次」,改爲寫上「{6,20}'。但即使如此,它有太多的回溯,一些PCRE引擎無法找到任何東西。 – Bentoy13

+0

謝謝。您的建議有效。你拯救了我的一天 –

回答

0

如果這是Perl中,該字符串必須有一個數字,小寫字母,大寫字母加上任意數量的其他\w字符和字面{6-20}在字符串的末尾。例如,1aA{6-20}爲真。

我認爲原始作者縮進爲{6,20}而不是{6-20}

這是一個複雜的正則表達式。我認爲以下幾點會更容易理解和更快:

/^\w{6,20}$/ && /\d/ && /[a-z]/ && /[A-Z]/