GroupCollection.Item Property (Int32)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Updated: August 2009

Enables access to a member of the collection by integer index.

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

Syntax

'Declaration
Public ReadOnly Property Item ( _
    groupnum As Integer _
) As Group
public Group this[
    int groupnum
] { get; }

Parameters

  • groupnum
    Type: System.Int32
    The zero-based index of the collection member to be retrieved.

Property Value

Type: System.Text.RegularExpressions.Group
The member of the collection specified by groupnum.

Remarks

You can determine the number of items in the collection by retrieving the value of the Count property. Valid values for the groupnum parameter range from 0 to one less than the number of items in the collection.

If groupnum is not the index of a member of the collection, or if groupnum is the index of a capturing group that has not been matched in the input string, the method returns a Group object whose Group.Success property is false and whose Group.Value property is String.Empty.

Examples

The following example defines a regular expression that consists of two numbered groups. The first group captures one or more consecutive digits. The second group matches a single character. Because the regular expression engine looks for zero or one occurrence of the first group, it does not always find a match even if the regular expression match is successful. The example then illustrates the result when the Item[Int32] property is used to retrieve an unmatched group, a matched group, and a group that is not defined in the regular expression. The example defines a regular expression pattern (\d+)*(\w)\2, which is interpreted as shown in the following table.

Pattern

Description

(\d+)*

Match one or more occurrence of a decimal digit. This is the first capturing group. Match this pattern either zero or one time.

(\w)

This is the second capturing group.

\k

Match the string captured by the second capturing group.

Imports System.Text.RegularExpressions

Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      Dim pattern As String = "(\d+)*(\w)\2"
      Dim input As String = "AA"
      Dim match As Match = Regex.Match(input, pattern)

      ' Get the first named group.
      Dim group1 As Group = match.Groups.Item(1)
      outputBlock.Text += String.Format("Group 1 value: {0}", If(group1.Success, group1.Value, "Empty")) & vbCrLf

      ' Get the second named group.
      Dim group2 As Group = match.Groups.Item(2)
      outputBlock.Text += String.Format("Group 2 value: {0}", If(group2.Success, group2.Value, "Empty")) & vbCrLf

      ' Get a non-existent group.
      Dim group3 As Group = match.Groups.Item(3)
      outputBlock.Text += String.Format("Group 3 value: {0}", If(group3.Success, group2.Value, "Empty")) & vbCrLf
   End Sub
End Module
' The example displays the following output:
'       Group 1 value: Empty
'       Group 2 value: A
'       Group 3 value: Empty
using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      string pattern = @"(\d+)*(\w)\2";
      string input = "AA";
      Match match = Regex.Match(input, pattern);

      // Get the first named group.
      Group group1 = match.Groups[1];
      outputBlock.Text += String.Format("Group 1 value: {0}", group1.Success ? group1.Value : "Empty") + "\n";

      // Get the second named group.
      Group group2 = match.Groups[2];
      outputBlock.Text += String.Format("Group 2 value: {0}", group2.Success ? group2.Value : "Empty") + "\n";

      // Get a non-existent group.
      Group group3 = match.Groups[3];
      outputBlock.Text += String.Format("Group 3 value: {0}", group3.Success ? group2.Value : "Empty") + "\n";
   }
}
// The example displays the following output:
//       Group 1 value: Empty
//       Group 2 value: A
//       Group 3 value: Empty

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.

Change History

Date

History

Reason

August 2009

Added an example.

Customer feedback.