Note 2 To access the individual pieces matched by the Regex, we need to loop over the Captures collection.
Finally We can access the Value property to get the actual string. The Index property tells us the character position of the capture.
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
// Input string.
const string value = @"said shed see spear spread super";
// Get a collection of matches.
MatchCollection matches = Regex.Matches(value, @"s\w+d");
// Use foreach-loop.
foreach (Match match in matches)
{
foreach (Capture capture in match.Captures)
{
Console.WriteLine("Index={0}, Value={1}", capture.Index, capture.Value);
}
}
}
}Index=0, Value=said
Index=5, Value=shed
Index=20, Value=spread
Matches, Match. With Regex.Matches, we gather a group of matches (a MatchCollection) which must be iterated over. If only one Match is needed, Regex.Match is simpler to use.
Summary. The Regex.Matches method provides a way to match multiple times in a single input string. You can then loop over these matches and their individual captures to get all the results.
Final note. Matches() is similar to Regex.Match. Doing this sort of text processing would be more cumbersome if you were to use string class methods.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.