2017-08-14 67 views
1

我没有找到针对这个特定问题的另一个解决方案,所以我希望你们可以提供帮助。c#正则表达式查找密码中的2个孤立字符

我需要测试给定的密码是否有2个或更多的大写字母,我想用正则表达式来做。我现在是这样的:

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

唯一的正则表达式:

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

但此代码PROGRAMM只要有彼此相邻的2或多个大写字母的作品。

这个工程: AAAA

这并不: AAAA

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

我在网上搜索了关于正则表达式的内容,但{2,}似乎是该作业中最好的量词,或者我完全错了吗?

感谢所有的窍门:)

+0

您需要知道在密码中计数大写还是什么? –

回答

0

这应该做的工作

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

在这里你搜索一个大写字母([A-Z]),那么任何字符串(.*),然后又是大写字母( [A-Z])。如果你希望能够增加所需的大写字母的数量很容易,你可以使用这个:

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

现在你找一个大写字母,那么任何字符串。你搜索这个两次或更多。

+0

非常感谢你:)这正是我需要的解决方案。 – Nazzaroth

+0

所以请接受它! – EarthDragon

0

您可以使用此代码,找到密码计数大写字母和数字:

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

我希望能帮助你。

0

如果你尝试这样的事情,也许你可以达到解决方案。 将此方法适应于您自己

public static bool checkingUpperCase(string s) 
{ 
    for (int i = 0; i < s.Length; i++) 
    { 
    if (char.IsUpper(s[i])) 
     return false; 
    } 
return true; 
} 
相关问题