基本上,我想计算一个字符串中的特定字符集。 换句话说,我需要统计所有的字母和数字,而不是别的。 但我似乎无法找到正确的(正则表达式)语法。 这就是我的......
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,对我来说很容易 - 这是我使用正则表达式的第一天。
感谢。
答案 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)
答案 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;
}