那麼,必須爲密碼做一個正則表達式。我該如何構造這個正則表達式
密碼應該是5大寫字母和3個數字(可以按任意順序),共8個(5 + 3)
我試試這個
^(.*?(A-Z){5})(.*\d){3}
但在任何爲了不工作。
希望你們能幫我解決這個問題。
那麼,必須爲密碼做一個正則表達式。我該如何構造這個正則表達式
密碼應該是5大寫字母和3個數字(可以按任意順序),共8個(5 + 3)
我試試這個
^(.*?(A-Z){5})(.*\d){3}
但在任何爲了不工作。
希望你們能幫我解決這個問題。
你靠近,試試這個:
^(?=(?:.*[A-Z]){5})(?=(?:.*\d){3})[A-Z0-9]{8}$
試試這個:
^(?=(.*[A-Z]){5})(?=(.*\d){3}).{8}$
說明:
^
開始在字符串的開頭(?=...)
期待,但不要「」前進又(?:.*[A-Z]){5}
只是匹配在字符串中包含5個大寫字母。該(?:
的意思是「不抓住這個羣體;在.*
意味着‘允許字母字符之間’(?=...)
期待,但不要‘’前進又(?:.*\d){3}
只是匹配在字符串中包含3數字(?:
的意思是「不捕獲這個組; .*
的意思是「允許數字之間的字符」。.{8}
嚴絲合縫8個字符$
匹配的字符串的末尾實例:
呃,這是一個很好的解釋,希望在一段時間內像你們一樣。 – user3306573
很高興幫助! –
需要這樣的東西密碼不是一件好事,因此你不需要那個正則表達式。
如果你看看所有可能的8個字符密碼,這些都比8char 5upercaseletters 3digits密碼多得多。因此,如果攻擊者知道你的需求(這些需求可能比祕密文檔記載的更多),那麼他可以比沒有這些需求更快速地強制密碼 - 因爲他有更少的密碼候選人可以嘗試。
8個字符沒有限制(數字,上,下,額外的)=(10 + 26 + 26 + X)^ 8點的可能性
計算自己,你有多少可能的密碼有。 :D
是的,但這是一個可能有10個人的內聯網,這就是爲什麼當我使用WEB上的登錄表單登錄網絡時,我會像req Upper,Lower number等一樣。謝謝你的評論! :) – user3306573
完美的作品,但我想知道爲什麼會有「:」:) – user3306573
@ user3306573:'(?:....)'是一個非捕獲組,請參閱:http:// www.regular-expressions.info/brackets.html – Toto