我使用正则表达式进行密码验证: 这个正则表达式不是由我创造的..
public final Pattern PASSWORD = Pattern.compile("[(?=.*[a-zA-Z])]"
+ "[(?=.*d)]" + "[(?=.*[^a-zA-Z0-9s])]" + "[.{6s,}]");
我试图创建一个正则表达式 密码长度为6个字母,一个数字和一个大写字母
我不知道如何阅读正则表达式... 建议一些学习正则表达式的教程 模式PASSWORD满足我的条件.. 如果没有那么我需要在我的正则表达式中进行哪些更改
答案 0 :(得分:3)
我用谷歌搜索的第一件事显示了使用正则表达式验证密码的示例:http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/
答案 1 :(得分:3)
主要问题是你的表达式周围有字符类[...]
。这可能会更好:
"^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9\\s]).{6,}"
我还将d
更改为\\d
,将s
更改为\\s
。
这意味着:
(?=.*[a-zA-Z]) At least one character in [a-zA-Z] (?=.*\d) At least one digit. (?=.*[^a-zA-Z0-9\s]) At least one character that's not in [a-zA-Z0-9\s] .{6,} At least 6 characters.
答案 2 :(得分:1)
尝试将其放在一行中:
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,})
我认为这会对你有帮助。
答案 3 :(得分:0)
无论你拥有什么,都非常非常奇怪。我不会在这里详细介绍,因为Pshemo在评论中指出的教程更适合这一点。
根据您的要求,您可以使用
^(?=.*[A-Z])(?=.*\d).{6}$
↑ ↑ ↑
│ │ six characters in total
│ at least one digit
at least one upper-case letter