簡體   English   中英

Java創建用於密碼驗證的復雜正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM