密码模式的Java正则表达式
不适用于“至少一个字母、至少一个数字和至少一个特殊字符”和“至少一个数字和至少一个特殊字符”的正则表达式
例如:
String passwordpattern="A9009"; //Not working for pattern3
注意:应至少检查一个字母、数字和特殊字符
及
String passwordpattern="A3566523"; //Not working for pattern4
注意:它应该检查至少一个特殊字符和至少一个数字
//Alphabets, Digits and Special Characters
String pattern3 = "[^\\\\w\\\\d]*(([0-9]+.*[A-Za-z]+.*[!#%&'()*+,-:;<=>?@}{]+.*)|[A-Za-z]+.*[0-9]+.*[!#%&'()*+,-:;<=>?@}{]+.*|[!#%&'()*+,-:;<=>?@}{]+.*[A-Za-z]+.*[0-9]+.*|[!#%&'()*+,-:;<=>?@}{]+.*[0-9]+.*[A-Za-z]+.*|[A-Za-z]+.*[!#%&'()*+,-:;<=>?@}{]+.*[0-9]+.*|[0-9]+.*[!#%&'()*+,-:;<=>?@}{]+.*[A-Za-z]+.*)";
//Digits and Special Characters
String pattern4 = "([^\\\\w\\\\d]*(([!#%&'()*+,-:;<=>?@}{]+.*[0-9]+.*)|[0-9]+.*([!#%&'()*+,-:;<=>?@]+.*)))";
# 1 楼答案
对于这些类型的断言,最好使用lookahead assertions
\pL
匹配任何unicode字母,\d
匹配任何数字,\W
匹配任何非单词字符注意,在使用
matches
方法时,不需要使用锚# 2 楼答案
此正则表达式模式将执行您想要的操作-仅当给定字符串输入中至少有一个字母、一个数字和一个特殊字符时才匹配:
^(?=.)[a-zA-Z]+[0-9]+[^\w]+[^\s]+