如何计算字符串中特定字符集的数量

时间:2012-12-19 21:27:09

标签: c# regex string linq

基本上,我想计算一个字符串中的特定字符集。 换句话说,我需要统计所有的字母和数字,而不是别的。 但我似乎无法找到正确的(正则表达式)语法。 这就是我的......

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

我一直在环顾四周,但似乎无法找到任何允许多个角色的东西。 再说一次,我不确定它的语法应该是什么     “[A-Z] / [A-Z] / [0-9]” 或者其他的东西。 Anywho,对我来说很容易 - 这是我使用正则表达式的第一天。

感谢。

4 个答案:

答案 0 :(得分:5)

Regular Expression Cheat Sheet

Expresso Regular Expression tool

[A-Z].[a-z].[0-9]将匹配任何大写字母([A-Z]),后跟任何字符(.),后跟任何小写字母([a-z]),后跟任意字符(.),后跟任意数字([0-9])。

您希望在任何字母或数字上匹配的内容为[A-Za-z0-9]

答案 1 :(得分:4)

如果不需要使用正则表达式,则有一个简单的替代解决方案:

return s.ToCharArray().Count(c => Char.IsNumber(c) || Char.IsLetter(c));

答案 2 :(得分:3)

试试这个:

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

请参阅:regexlib.com

答案 3 :(得分: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;
}