【发布时间】:2012-12-14 03:58:05
【问题描述】:
我正在寻找一个 单个 java regex 来断言任何长度的字符串(实际上是密码)具有:
- 至少 2 个小写字母
- 至少 2 个大写字母
- 至少 2 个数字字符
- 至少 1 个字符,不是字母或数字
用于匹配,例如:
password.matches("some regex");
这里的“重要”部分是必须有多个的字符类型。我发现的其他问题是关于“至少一个”,而不是“至少两个”的字符类型。
这可以通过多个matches()调用来完成,但是正则表达式将被外部化为一个字符串,所以它需要一个对matches()的调用。
【问题讨论】:
-
我认为这与前瞻有关,我不熟悉如何正确
-
我认为这不能通过正则表达式来完成。但只需几行普通的旧 java 代码就可以轻松完成。
-
我认为使用 4 个单独的正则表达式可以轻松完成。
-
当复杂性规则发生变化时,正则表达式会发生什么变化?
-
@msandiford 查看编辑 - 没问题