匹配除包含重复字符的密码之外的任何密码

时间:2017-06-15 08:07:55

标签: regex

我正在尝试编写密码验证程序,验证程序需要一个匹配的表达式。如果密码与应用表达式的时间匹配,则密码有效。

在这种情况下,我尝试匹配任何有效密码,但包含三个或更多不间断重复字符的密码除外。这可能是任何角色,并且它在整个字符串中的位置都不重要。

有效密码: Password1! Paasswwoorroodd1!< - 我希望这些密码匹配。请注意,第二个密码中有4个,但只有两个' o'一个接一个地出现,所以它有效。

密码无效: Password111! Passwooord!1< - 有三个重复的字符,背靠背,因此,我希望它不匹配。

在之前的尝试中,我写了一个正则表达式:

(.)\1{2}

这允许我匹配重复的字符,但匹配所有内容但是包含重复字符的字符串变得更加困难。

甚至可以单独使用正则表达式吗?我需要一个纯正则表达式解决方案,而不是依赖于运行匹配并通过代码操作它。

任何帮助都将不胜感激。

编辑:感谢Malte的评论,找到了答案 ^((.)\2?(?!\2))+$

似乎符合我的所有标准。我错过了负面的前瞻和最后的+。欢呼声。

0 个答案:

没有答案