【发布时间】:2015-09-10 22:41:15
【问题描述】:
我现在有一个正则表达式,它在我的 Java 应用程序中强制要求密码。
我现在想修改此表达式以反映此政策:
至少 7 个字符 包含以下三个或更多字符类别中的字符:
(a-z), (A-Z), (0-9), (@#$,.)
开头或结尾的字符不计入其字符类别。
这对于正则表达式来说太复杂了吗?如果没有,我如何修改现有的以遵守新的?
谢谢
这是我现在的:
String credPattern = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%,.]).{7,})";
pattern = Pattern.compile(credPattern);
Matcher matcher = pattern.matcher(pw);
【问题讨论】:
-
必读的xkcd漫画:xkcd.com/936
-
如果您在创建正则表达式时遇到问题,当您需要更新它时会遇到更多问题。我建议你为此使用图书馆。见stackoverflow.com/questions/3200292/…
-
如果 Java 代码可以执行相同的验证,而且更易于阅读和维护,为什么还要使用正则表达式?
-
@Malt 这就是我最终要做的。