Match.NextMatch Method

Returns a new Match object with the results for the next match, starting at the position at which the last match ended (at the character beyond the last matched character).

Namespace:  System.Text.RegularExpressions
Assembly:  System (in System.dll)

public Match NextMatch()

Return Value

Type: System.Text.RegularExpressions.Match
The next regular expression match.

This function is similar to calling Match again and passing (Index+Length) as the new starting position, but it differs from calling Match directly because it handles zero-length match cases in a way that guarantees progress to the end of the string.


This method does not modify the current instance. Instead, it returns a new Match object that contains information about the next match.

The following example uses the NextMatch method to capture regular expression matches beyond the first.

using System;
using System.Text.RegularExpressions;

class Example
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
      string text = "One car red car blue car";
      string pat = @"(\w+)\s+(car)";
      // Compile the regular expression.
      Regex r = new Regex(pat, RegexOptions.IgnoreCase);
      // Match the regular expression pattern against a text string.
      Match m = r.Match(text);
      int matchCount = 0;
      while (m.Success)
         outputBlock.Text += "Match" + (++matchCount) + "\n";
         for (int i = 1; i <= 2; i++)
            Group g = m.Groups[i];
            outputBlock.Text += "Group" + i + "='" + g + "'" + "\n";
            CaptureCollection cc = g.Captures;
            for (int j = 0; j < cc.Count; j++)
               Capture c = cc[j];
               outputBlock.Text += "Capture" + j + "='" + c + "', Position=" + c.Index + "\n";
         m = m.NextMatch();
//This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions