Match.NextMatch Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
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)
Syntax
'Declaration
Public Function NextMatch As Match
public Match NextMatch()
Return Value
Type: System.Text.RegularExpressions.Match
The next regular expression match.
Remarks
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.
Note: |
---|
This method does not modify the current instance. Instead, it returns a new Match object that contains information about the next match. |
Examples
The following example uses the NextMatch method to capture regular expression matches beyond the first.
Imports System.Text.RegularExpressions
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim text As String = "One car red car blue car"
Dim pat As String = "(\w+)\s+(car)"
' Instantiate the regular expression object.
Dim r As Regex = New Regex(pat, RegexOptions.IgnoreCase)
' Match the regular expression pattern against a text string.
Dim m As Match = r.Match(text)
Dim matchcount As Integer = 0
Do While m.Success
matchcount += 1
outputBlock.Text += "Match" & (matchcount) & vbCrLf
Dim i As Integer
For i = 1 To 2
Dim g As Group = m.Groups(i)
outputBlock.Text += "Group" & i & "='" & g.ToString() & "'" & vbCrLf
Dim cc As CaptureCollection = g.Captures
Dim j As Integer
For j = 0 To cc.Count - 1
Dim c As Capture = cc(j)
outputBlock.Text += "Capture" & j & "='" & c.ToString() _
& "', Position=" & c.Index & vbCrLf
Next
Next
m = m.NextMatch()
Loop
End Sub
End Module
' 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
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
Version Information
Silverlight
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
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.