如何检查字符串是不是包含从 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]?

如何检查用户输入是不是未输入任何内容?

如何检查一个php字符串是不是只包含英文字母和数字?

如何在 Java/Kotlin 中检查字符串是不是包含非 KSC5601 字母?

如何在 Typescript 中检查字符串是不是为数字/浮点数? [复制]

如何在 Typescript 中检查字符串是不是为数字/浮点数? [复制]