c#regex在密码中找到2个孤立的char

时间:2017-08-14 06:08:16

标签: c# regex char passwords quantifiers

我没有找到针对这个特定问题的另一种解决方案,所以我希望你们可以提供帮助。

我需要测试给定的密码是否包含2个或更多大写字母,并且我想使用正则表达式来执行此操作。我现在拥有的是:

if (Regex.IsMatch(passw, @"([A-Z]){2,}")){
            Note += 1;
        }

只有正则表达式:

@"([A-Z]){2,}"

但是使用这段代码,只有当两个或多个大写字母彼此相邻时,程序才有效。

这有效: AAAA

这不是: AAAA

但我需要后者,因为密码可以完全随机。

我在网上搜索正则表达式,但是{2,}似乎是这项工作的最佳量词,或者我完全错了吗?

感谢任何tipps:)

2 个答案:

答案 0 :(得分:0)

这应该做的工作

@"[A-Z].*[A-Z]"

在这里搜索大写字母([A-Z]),然后搜索任何字符串(.*),然后搜索另一个大写字母([A-Z])。如果您希望能够轻松增加所需的大写字母数,可以使用:

@"([A-Z].*){2,}"

现在你要查找一个大写字母,然后是任何字符串。你搜索了两次或更多。

答案 1 :(得分:0)

您可以使用此代码在密码中查找计数大写和数字:

return password.Length >= z
    && new Regex("[A-Z]").Matches(password).Count >= x
    && new Regex("[0-9]").Matches(password).Count >= y
    ;

我希望能帮助你。