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