如何检查一个string是否包含从一个z到任何字母?

可能重复:
C#正则expression式:检查“az”和“AZ”

我可以使用下面的代码:

String hello = "Hello1"; Char[] convertedString = String.ToCharArray(); int errorCounter = 0; for (int i = 0; i < CreateAccountPage_PasswordBox_Password.Password.Length; i++) { if (convertedString[i].Equals('a') || convertedString[i].Equals('A') ..... || convertedString[i].Equals('z') || convertedString[i].Equals('Z')) { errorCounter++; } } if(errorCounter > 0) { //do something } 

但是我想这只是一个简单的目的而已,太多了,我相信有一种更简单的方式,我还没有掌握。

用这个替换你的for loop

 errorCounter = Regex.Matches(yourstring,@"[a-zA-Z]").Count; 

记得要使用Regex类,你必须using System.Text.RegularExpressions; 在你的进口

关于什么:

 //true if it doesn't contain letters bool result = hello.Any(x => !char.IsLetter(x)); 

您可以使用RegEx:

 Regex.IsMatch(hello, @"^[a-zA-Z]+$"); 

如果你不喜欢,你可以使用LINQ:

 hello.All(Char.IsLetter); 

或者,您可以遍历字符,并使用isAlpha:

 Char.IsLetter(character); 

你可以寻找正则表达式

 Regex.IsMatch(str, @"^[a-zA-Z]+$"); 

对于最小的变化:

 for(int i=0; i<str.Length; i++ ) if(str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z') errorCount++; 

你可以使用正则表达式,至少如果速度不是问题,你并不需要真正的确切数量。

使用正则表达式不需要将其转换为char数组

 if(Regex.IsMatch("yourString",".*?[a-zA-Z].*?")) { errorCounter++; }