嗨,我想找到一个满足这些条件的正则表达式。
(1)密码必须至少8个字符 (2)它必须包含至少一个大写,小写字母,数字和特殊字符。 (3)密码不得包含两个以上连续的相同字符。
我对前两点有一个正则表达式 ^(?=。?[AZ])(?=。?[az])(?=。?[0-9])(?=。?[ #?!@ $%^&*-])。{8,} $
我认为此重复字符串的正则表达式是(?!(。)\ 1 {2,})
不确定如何将两者结合起来。
请帮助 非常感谢 天竺葵
答案 0 :(得分:1)
好吧,这可能不漂亮,但似乎可以完成工作:
^(?!.*(.)\1\1)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[.\-!?§$%&]).{8,}.*$
您可以看到一个有效的演示here。
我上面链接的站点对正则表达式给出了很好的解释。请尝试至少至少了解这里发生的情况,以便您发现使用此类丑陋的RegEx时发生的错误(因此,SO不会成为编码服务站点,而是可以在此处学习知识的地方)。
请注意,此示例中的“特殊字符”为.-!?§$%&
。如果要在其中添加其他任何内容,请将其添加到模式中的位置。并且不要忘记在字符类中使用-
来转义\
,因为它们在这里有特殊的含义。就像这一部分一样:.\-!?§$%&
。