c#检查" *"正在重复字符串

时间:2018-05-07 11:26:38

标签: c# .net

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

  

未处理的类型' System.ArgumentException'发生在System.dll

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

这里是给出表达的代码

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

这个完美无缺

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

任何想法为什么?

3 个答案:

答案 0 :(得分:11)

您可以改用LINQ Count

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

答案 1 :(得分:6)

*是一个元字符,需要转义

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

答案 2 :(得分:2)

*在正则表达式中具有特殊含义,您应该使用\将其转义。尝试:

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