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 回答