((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
有人可以简要解释一下这些限定词。
我从中得到了这个模式 http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/
点是什么意思
为什么+限定符必须至少出现一次才会被使用
也应该使用什么限定词零次或多次。
我是java中这种模式匹配的新手,很难掌握
答案 0 :(得分:0)
好的,让我们分解一下:
首先,
'.
'=任何
(
(?=.*\d)
---'?=
'是正则表达式'预见' - 这断言字符串中某处有\ d(数字)
(?=.*[a-z])
---'再见' - 这断言字符串中的某个地方有一个[a-z](小写字母)
(?=.*[A-Z])
---'再见' - 这断言字符串中某处有[A-Z](大写字母)
(?=.*[@#$%])
----另一个'预见' - 断言至少有一个字符类被定义为@,#,$,%
.{6,20}
- 这断言字符串必须包含6到20个“任何”符号,即'。'
)
希望它有所帮助!如果还有什么不清楚的地方,请简单地说出来。
答案 1 :(得分:0)
您不需要+
量词,因为您只是期待看到所有内容中的“至少一个”。 (数字,小写,大写,符号,以及至少6到20个字符)
.
表示“任何东西”。匹配任何字符,除了换行符(通常)。