6

基本的に、文字列内の特定の文字のセットをカウントしたい。言い換えれば、すべての文字と数字を数える必要があり、他には何もありません。しかし、正しい(正規表現)構文が見つからないようです。これが私が持っているものです...

public double AlphaNumericCount(string s)
{
    double count = Regex.Matches(s, "[A-Z].[a-z].[0-9]").Count;
        return count;
}

私は周りを見回してきましたが、複数の文字セットを許可するものを見つけることができないようです. 繰り返しますが、構文が「[AZ]/[az]/[0-9]」か何かである必要があるかどうかはわかりません。とにかく、私に気楽に行ってください-正規表現を使用するのは私の最初の日です。

ありがとう。

4

4 に答える 4

5

正規表現チートシート

Expresso 正規表現ツール

[A-Z].[a-z].[0-9]は、任意の大文字 ( [A-Z])、その後に任意の文字 ( .)、その後に任意の小文字 ( [a-z])、その後に任意の文字 ( .)、その後に任意の数字 ( [0-9]) が続くものと一致します。

任意の文字または数字で一致させたいのは です[A-Za-z0-9]

于 2012-12-19T21:32:22.433 に答える
4

正規表現を使用する必要がない場合は、簡単な代替ソリューションがあります。

return s.ToCharArray().Count(c => Char.IsNumber(c) || Char.IsLetter(c));
于 2012-12-19T21:37:09.407 に答える
3

これを試してください:

^[a-zA-Z0-9]+$

参照: regexlib.com

于 2012-12-19T21:29:56.807 に答える
3

正規表現を避けたい場合は、単純に文字列内の文字を反復処理し、Char.IsLetterOrDigitを使用してそれらが文字か数字かを確認できます。

public int AlphaNumericCount(string s)
{
    int count = 0;

    for(int i = 0; i < s.Length; i++)
    {
       if(Char.IsLetterOrDigit(s[i])) 
          count++;
    }

    return count;
}
于 2012-12-19T21:31:53.717 に答える