我没有找到针对这个特定问题的另一种解决方案,所以我希望你们可以提供帮助。
我需要测试给定的密码是否包含2个或更多大写字母,并且我想使用正则表达式来执行此操作。我现在拥有的是:
if (Regex.IsMatch(passw, @"([A-Z]){2,}")){
Note += 1;
}
只有正则表达式:
@"([A-Z]){2,}"
但是使用这段代码,只有当两个或多个大写字母彼此相邻时,程序才有效。
这有效: AAAA
这不是: AAAA
但我需要后者,因为密码可以完全随机。
我在网上搜索正则表达式,但是{2,}似乎是这项工作的最佳量词,或者我完全错了吗?
感谢任何tipps:)
答案 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
;
我希望能帮助你。