使用\\ p {Ll}的正则表达式

时间:2016-03-23 16:43:22

标签: java regex

我正在验证密码。它可以包含:

  • [a-z]
  • [0-9]
  • [#@]

使用:

  • 最小长度8
  • 最长14
  • 必须至少包含一个小字符,数字,#或@(但不包含大写字母)

这是我的代码:

String regExp="^(?=.\\p{Ll})(?=.*[#@])(?=.*[0-9]).{8,14}$";
String data="1aaaaA61@11";     ## password user enters ##

System.out.println(data.matches(regExp));

结果为true

1 个答案:

答案 0 :(得分:0)

你应该使用这个正则表达式:

^(?=.*\\p{Ll})(?=.*[#@])(?=.*\\d)[\\p{Ll}\\d#@]{8,14}$

[\\p{Ll}\\d#@]{8,14}不允许输入中使用大写字母,它允许8到14个后续字符长度:

  • 小写字母
  • #@