Java Regex用于密码验证

时间:2016-03-08 23:06:03

标签: java regex

我在Java应用程序中创建了用于密码验证的正则表达式。我创建的正则表达式如下所示。

^[\\p{Alnum}#.!@$*&_]{5,12}$
  1. 至少5个字符和最多12个字符
  2. 至少包含一位数字
  3. 至少包含一个字符
  4. 可能包含一组特殊字符中的字符(#。!@ $ *& _)
  5. 不包含空格,标签等
  6. 我错过了1和2,就像我给#34; gjsajhgjhagfj"或" 29837846876",它应该失败。但它没有发生。

    有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以使用前瞻来强制条件1& 2:

^(?i)(?=.*[a-z])(?=.*[0-9])[a-z0-9#.!@$*&_]{5,12}$

DEMO

(?i)用于不敏感匹配,与编译函数的Pattern.CASE_INSENSITIVE标志相同:

Pattern.compile(regex, Pattern.CASE_INSENSITIVE)

您可以阅读有关Lookaheads HERE

的更多信息