我正在尝试编写密码验证程序,验证程序需要一个匹配的表达式。如果密码与应用表达式的时间匹配,则密码有效。
在这种情况下,我尝试匹配任何有效密码,但包含三个或更多不间断重复字符的密码除外。这可能是任何角色,并且它在整个字符串中的位置都不重要。
有效密码:
Password1! Paasswwoorroodd1!
< - 我希望这些密码匹配。请注意,第二个密码中有4个,但只有两个' o'一个接一个地出现,所以它有效。
密码无效:
Password111! Passwooord!1
< - 有三个重复的字符,背靠背,因此,我希望它不匹配。
在之前的尝试中,我写了一个正则表达式:
(.)\1{2}
这允许我匹配重复的字符,但匹配所有内容但是包含重复字符的字符串变得更加困难。
甚至可以单独使用正则表达式吗?我需要一个纯正则表达式解决方案,而不是依赖于运行匹配并通过代码操作它。
任何帮助都将不胜感激。
编辑:感谢Malte的评论,找到了答案
^((.)\2?(?!\2))+$
似乎符合我的所有标准。我错过了负面的前瞻和最后的+。欢呼声。