¿Cómo encontrar múltiples ocurrencias con grupos regex?

¿Por qué el siguiente código da como resultado:

hubo 1 partidos para ‘el’

y no:

hubo 3 coincidencias para ‘el’

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)

Busca la cadena de entrada especificada para la primera aparición de la expresión regular especificada.

Use Regex.Matches (String, String) en su lugar.

Busca la cadena de entrada especificada para todas las ocurrencias de una expresión regular especificada.

Match devuelve el primer partido, mira esto para saber cómo obtener el rest.

Deberías usar Matches lugar. Entonces podrías usar:

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

Debería utilizar Regex.Matches lugar de Regex.Match si desea devolver varias coincidencias.