【发布时间】:2017-01-09 21:36:57
【问题描述】:
我正在尝试为要使用的密码验证编写一个正则表达式,但我不知道如何正确执行。 到目前为止,我的 RegEx 看起来像:
regexp = "^(?=.*[0-9]){1,3}(?=.*[a-zA-Z]){1,3}(?=\\s+$)$"
关于密码规则:
A) 必须包含数字、大小写字母。
B) 一行中的字母或数字的个数必须小于 4。(例如 1234 和 dcba 都不允许)
C) 相同字符的数量不超过 3 个。(例如,aaaa 和 0000 都不允许)
谢谢。
【问题讨论】:
-
问题是什么?如果问题是正则表达式如何:我认为不可能用单个正则表达式检查它
-
我认为可以使用单个正则表达式来完成。但出路是什么?
-
A) 不,因为顺序不固定(是吗?),对于 B):您必须写下所有可能性
-
你应该检查所有额外的东西(例如在方法中),如果它是正确的,如果你结合了所有你得到你的有效性 |即使有可能正则表达式会很长且不可读
-
因为你问的答案超出了:C):将其拆分为字符并计算它们更容易 |正则表达式不能计数(除非您有固定的字母顺序 - 请参阅上面的评论)
标签: java regex validation