web-dev-qa-db-ja.com

文字列にaからzまでの文字が含まれているかどうかを確認する方法は?

可能性のある複製:
C#正規表現:「a-z」および「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
}

しかし、単純な目的のためにはあまりにも多くの線が必要だと思います。もっと簡単な方法、まだ習得していない方法があると思います。

36
Hendra Anggrian

for loop これで :

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

Regexクラスを使用することを忘れないでください、using System.Text.RegularExpressions;インポート中

57
Ta Duy Anh

どうですか:

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

RegExを使用できます。

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

気に入らない場合は、LINQを使用できます。

hello.All(Char.IsLetter);

または、文字をループしてisAlphaを使用できます。

Char.IsLetter(character);
16
Kirby

正規表現 を探すことができます

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

最小限の変更の場合:

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

少なくとも速度が問題ではなく、実際の正確なカウントが本当に必要ない場合は、正規表現を使用できます。

1
perh

正規表現を使用してchar配列に変換する必要はありません

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