如何检查字符串是不是包含从 a 到 z 的任何字母? [复制]
Posted
技术标签:
【中文标题】如何检查字符串是不是包含从 a 到 z 的任何字母? [复制]【英文标题】:How to check if a String contains any letter from a to z? [duplicate]如何检查字符串是否包含从 a 到 z 的任何字母? [复制] 【发布时间】:2012-10-04 18:38:39 【问题描述】:可能重复:C# Regex: Checking for “a-z” and “A-Z”
我可以使用下面的代码:
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
但我想为了一个简单的目的需要太多的线路,我相信有一种方法更简单,我还没有掌握。
【问题讨论】:
见***.com/questions/6017778/… - 正则表达式正是您要找的。span> 我投票重新提出这个问题,因为它与正则表达式没有严格的关系。 我还认为这不是重复的。至少不是 C# Regex: Checking for “az” and “AZ” 的副本,因为这个问题是询问字符串是否包含任何字符 a-zA-Z 而另一个问题是询问字符串仅包含 a-zA-Z... 【参考方案1】:用这个替换你的for loop
:
errorCounter = Regex.Matches(yourstring,@"[a-zA-Z]").Count;
记得使用Regex
类,你必须在你的导入中使用using System.Text.RegularExpressions;
【讨论】:
哦,对不起,我还有一个问题,如何不仅检测从 a 到 z 的字母,还检测所有符号?喜欢 。 , ! ? # $ 如果您必须处理非 a-z 字母(中文等),请小心使用此正则表达式【参考方案2】:怎么样:
//true if it doesn't contain letters
bool result = hello.Any(x => !char.IsLetter(x));
【讨论】:
注意:这会检查是否有任何不是字母的字符,它不会检查字符串中是否有字母。简单修复: bool result = !hello.Any(x => char.IsLetter(x)); 我很高兴这里有 LINQ 答案,所以我不必使用正则表达式。 不应该!hello.Any(char.IsLetter);
也可以吗?
如果字符串有新行 "\r" 或 "\n" 则返回 true
非常适合我!【参考方案3】:
为了最小的改变:
for(int i=0; i<str.Length; i++ )
if(str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
errorCount++;
您可以使用正则表达式,至少在速度不是问题并且您并不真正需要实际准确计数的情况下。
【讨论】:
【参考方案4】:使用正则表达式 无需将其转换为 char 数组
if(Regex.IsMatch("yourString",".*?[a-zA-Z].*?"))
errorCounter++;
【讨论】:
【参考方案5】:你可以使用正则表达式:
Regex.IsMatch(hello, @"^[a-zA-Z]+$");
如果你不喜欢这样,你可以使用 LINQ:
hello.All(Char.IsLetter);
或者,您可以遍历字符,并使用 isAlpha:
Char.IsLetter(character);
【讨论】:
对不起,只有当我整个字符串都是数字时它才会读取,如果我输入数字和字母它就不会检测到 正确的正则表达式是Regex.IsMatch(hello, @"[a-zA-Z]");
【参考方案6】:
你可以找regular expression
Regex.IsMatch(str, @"^[a-zA-Z]+$");
【讨论】:
我不敢相信你可以这么简单! 也可以使用:(?i)^[a-z]+$
,这里?i
使其不区分大小写。以上是关于如何检查字符串是不是包含从 a 到 z 的任何字母? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何获得正则表达式来检查字符串是不是仅包含字母字符 [a-z] 或 [A-Z]?
如何在 Java/Kotlin 中检查字符串是不是包含非 KSC5601 字母?