密码必须包含以下任一条件
1)一个大写 2)一个小写 3)一个号码 4)一个特殊字符。
在上述条件下,如果三匹配,则允许输入有效密码。
类似于以下格式。
1)一个数字,一个小写字母,一个大写字母--->有效密码
或
2)一个数字,一个小写字母和一个特殊字符--->有效密码
或
3)一个数字,一个大写字母和一个特殊字符--->有效密码。
请帮助我如何为上述条件编写正则表达式。
我的要求是任意三个组合,一个数字,一个字母,一个特殊字符。这就像排列组合格式。 如果我写/(?=.\d)(?=.[az])(?=.[AZ])(?=.[-._@ ^])。{8,16} /格式我需要以其他方式验证这么多条件。
谢谢。
答案 0 :(得分:0)
假设您的特殊字符为[\ ^ $。|?** +()
1)一个数字,一个小写字母,一个大写字母--->有效密码
[0-9][a-z][A-Z]
或
2)一个数字,一个小写字母和一个特殊字符--->有效密码
[0-9][a-z][\[\\\^\$\.\|\?\*\+\(\)]
或
3)一个数字,一个大写字母和一个特殊字符--->有效密码。
[0-9][A-Z][\[\\\^\$\.\|\?\*\+\(\)]
使用OR(|)组合它们
[0-9][a-z][A-Z]|[0-9][a-z][\[\\\^\$\.\|\?\*\+\(\)]|[0-9][A-Z][\[\\\^\$\.\|\?\*\+\(\)]
答案 1 :(得分:0)
如果pswd字符的顺序不重要,那么:
Caused by: org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: java.lang.Integer with value ${rest.port} due java.lang.NumberFormatException: For input string: "${rest.port}"
\d[a-z][A-Z]
\d[a-z][\[\\\^\$\.\|\?\*\+\(\)]
因此,如果将其合并在一个正则表达式中:
\d[A-Z][\[\\\^\$\.\|\?\*\+\(\)]
检查here