关于.net:c#检查字符串中是否重复“*”

c# check if “*” is being repeated in a string

本问题已经有最佳答案,请猛点这里访问。

我正在计算我的字符串中有多少个*符号。但是我得到一个错误。

An unhandled exception of type 'System.ArgumentException' occurred in System.dll

我只是用一个正则表达式来检查它。当我用其他字符串测试时,它工作得很好,但是当我搜索"*"时,它是一个例外。

这是给出expresion的代码

1
2
3
string abc ="i am just trying *** for a sample code";
var count = Regex.Matches(abc,"*").Count;
Console.Out.WriteLine(count);

这个很好用

1
2
3
string abc ="i am just trying  for a sample code";
var count = Regex.Matches(abc,"a").Count;
Console.Out.WriteLine(count);

知道为什么吗?


您可以使用linq Count代替:

1
2
string abc ="i am just trying *** for a sample code";
var result = abc.Count(c=>c=='*');


*是元字符,需要转义

1
var count = Regex.Matches(abc, @"\*").Count;


*在regex上有特殊意义,你应该用\来避开它。尝试:

1
var count = Regex.Matches(abc, @"\*").Count;