((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
有人可以简要解释一下这些限定词。
我从 http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/得到了这个模式
点是什么意思
当必须至少出现一次时,为什么不使用 + 限定符
还有什么限定词应该使用零次或多次。
我是java中这种模式匹配的新手,有点难以掌握
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
有人可以简要解释一下这些限定词。
我从 http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/得到了这个模式
点是什么意思
当必须至少出现一次时,为什么不使用 + 限定符
还有什么限定词应该使用零次或多次。
我是java中这种模式匹配的新手,有点难以掌握
好的,让我们把它分解一下:首先,' .
' =任何东西
(
(?=.*\d)
--- ' ?=
' 是正则表达式 'look-ahead' - 这表明字符串中某处有一个 \d (数字)
(?=.*[a-z])
--- 'look-ahead' 再次断言字符串中某处有一个 [az](小写字母)
(?=.*[A-Z])
--- 'look-ahead' 再次 - 这断言在字符串的某处有一个 [AZ](大写字母)
(?=.*[@#$%])
---- 又一个'look-ahead' - 断言至少有一个字符类被定义为@,#,$,%
.{6,20}
- 这断言字符串必须包含 6 到 20 个“任何东西”符号,即“。”
)
希望能帮助到你!如果还有什么不清楚的,请直说。
您不需要+
量词,因为您只是向前看以看到所有事物中的“至少一个”。(一个数字、一个小写字母、一个大写字母、一个符号和至少六到二十个总字符)
意思是“.
任何东西”。匹配任何字符,除了换行符(通常)。