如何find正则expression式组的多个事件?

为什么下面的代码会导致:

有1场比赛的'''

并不是:

有3场比赛的'''

using System; using System.Text.RegularExpressions; namespace TestRegex82723223 { class Program { static void Main(string[] args) { string text = "C# is the best language there is in the world."; string search = "the"; Match match = Regex.Match(text, search); Console.WriteLine("there was {0} matches for '{1}'", match.Groups.Count, match.Value); Console.ReadLine(); } } } 
 string text = "C# is the best language there is in the world."; string search = "the"; MatchCollection matches = Regex.Matches(text, search); Console.WriteLine("there was {0} matches for '{1}'", matches.Count, search); Console.ReadLine(); 

Regex.Match(String,String)

在指定的inputstring中search指定正则expression式的第一个匹配项。

改用Regex.Matches(String,String) 。

在指定的inputstring中search指定正则expression式的所有匹配项。

Match返回第一场比赛,看看如何获​​得rest。

你应该使用Matches代替。 那么你可以使用:

 MatchCollection matches = Regex.Matches(text, search); Console.WriteLine("there were {0} matches", matches.Count); 

如果你想返回多个匹配,你应该使用Regex.Matches而不是Regex.Match