【发布时间】:2013-03-02 05:57:57
【问题描述】:
如何验证正则表达式的条件: 密码不得包含紧跟相同字符序列的任何字符序列。我也有其他情况,正在使用
(?=.*(..+)\\1)
验证立即序列重复。它正在失败。这段代码对传递的第 3 个和第 4 个字符串返回“true”;我需要它返回false。请帮忙。
String s2[] = {"1newAb", "newAB1", "1234567AaAa", "123456ab3434", "love", "love1"};
boolean b3;
for(int i=0; i<s2.length; i++){
b3 = s2[i].matches("^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*(..+)\\1).{5,12}$");
System.out.println("value" + b3);
}
【问题讨论】:
-
学习使用正则表达式大师的秘密武器——在线测试工具! -> regexplanet.com/advanced/index.html(谷歌“正则表达式测试器”以获得更多选项)。
-
为什么需要为此使用正则表达式?
-
虽然这可能是学习正则表达式的好练习,但您最好将每个规则的密码检查分开并仅在需要时使用正则表达式,以提高代码的维护性和可读性
标签: java regex passwords pattern-matching