模式匹配限定符

时间:2013-04-12 23:14:08

标签: java regex pattern-matching

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})

有人可以简要解释一下这些限定词。

我从中得到了这个模式  http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/

点是什么意思

为什么+限定符必须至少出现一次才会被使用

也应该使用什么限定词零次或多次。

我是java中这种模式匹配的新手,很难掌握

2 个答案:

答案 0 :(得分:0)

好的,让我们分解一下: 首先, '.'=任何

(

(?=.*\d) ---'?='是正则表达式'预见' - 这断言字符串中某处有\ d(数字)

(?=.*[a-z]) ---'再见' - 这断言字符串中的某个地方有一个[a-z](小写字母)

(?=.*[A-Z]) ---'再见' - 这断言字符串中某处有[A-Z](大写字母)

(?=.*[@#$%]) ----另一个'预见' - 断言至少有一个字符类被定义为@,#,$,%

.{6,20} - 这断言字符串必须包含6到20个“任何”符号,即'。'

)

希望它有所帮助!如果还有什么不清楚的地方,请简单地说出来。

答案 1 :(得分:0)

您不需要+量词,因为您只是期待看到所有内容中的“至少一个”。 (数字,小写,大写,符号,以及至少6到20个字符)

.表示“任何东西”。匹配任何字符,除了换行符(通常)。