Java 连续组合具有相同字符的密码正则表达式
我有一个这样的密码正则表达式Java 连续组合具有相同字符的密码正则表达式,java,javascript,regex,Java,Javascript,Regex,我有一个这样的密码正则表达式 ^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*])).{0,100}$ 我想添加正则表达式,它将验证这一点,并排除连续插入四个相同字符 我发现这个模式将提供匹配的4个相同的字符,但我如何组合它们,这个模式应该检查是否有4个相同的字符密码应该是无效的 ()\1{3}这项工作: ^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*]))((.)(?!\3{3})){0,1
^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*])).{0,100}$
我想添加正则表达式,它将验证这一点,并排除连续插入四个相同字符
我发现这个模式将提供匹配的4个相同的字符,但我如何组合它们,这个模式应该检查是否有4个相同的字符密码应该是无效的
()\1{3}这项工作:
^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*]))((.)(?!\3{3})){0,100}$
说明:
^ // beginning of string
( // begin capturing group #1 (this is actually unnecessary)
(?=.*\d) // must contain a digit
(?=.*[a-z]) // must contain a lowercase letter
(?=.*[A-Z]) // must contain an uppercase letter
(?=.*[!@#$%&*]) // must contain a special character
) // end capturing group #1
( // begin capturing group #2: one character of password, for repetition quantifier
(.) // capturing group #3: one character of password, for negative lookahead
(?!\3{3}) // character is not followed by itself 3 times
) // end capturing group #2
{0,100} // repeat group #2 up to 100 times
$ // end of string
我想你必须使用一个单独的测试…我如何检查说它是否不匹配然后密码是有效的(使用正则表达式)从lookaheads(外圆括号)中删除捕获组并添加一个负的lookahead
(?!*()\1{3})