[英]Java creating a complex regular expression for password validation
我現在有一個正則表達式,它對Java應用程序中的密碼提出了要求。
我現在想修改此表達式,使其反映以下策略:
至少7個字符包含以下三個或更多字符類中的字符:
(az),(AZ),(0-9),(@#$ ,.)
並且開頭或結尾的字符不會計入其字符類別。
對於正則表達式來說,這太復雜了嗎? 如果沒有,我該如何修改現有的以適應新的?
謝謝
這是我當前的:
String credPattern = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%,.]).{7,})";
pattern = Pattern.compile(credPattern);
Matcher matcher = pattern.matcher(pw);
此模式將應用所有四個字符類條件,即開始/結束和最小字符數要求:
^.(?=.*[a-z].)(?=.*[A-Z].)(?=.*[0-9].)(?=.*[@#$,.].).{6,}$
演示版
您想要做的就是將其分為四個Regex模式,如下所示
^.(?=.*[a-z].)(?=.*[A-Z].)(?=.*[0-9].).{6,}$
^.(?=.*[a-z].)(?=.*[A-Z].)(?=.*[@#$,.].).{6,}$
^.(?=.*[a-z].)(?=.*[0-9].)(?=.*[@#$,.].).{6,}$
^.(?=.*[A-Z].)(?=.*[0-9].)(?=.*[@#$,.].).{6,}$
運行每個腳本並使用您的腳本語言計算匹配數,如果大於3,則表示成功。
注意:按照您的原始樣式,允許使用空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.