This documentation is archived and is not being maintained.

GroupCollection.Item Property (String)

Updated: August 2009

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

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

public Group this[
	string groupname
] { get; }


Type: System.String

The name of a capturing group.

Property Value

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

groupName can be either the name of a capturing group that is defined by the (?<name>) element in a regular expression, or the string representation of the number of a capturing group that is defined by a grouping construct. For more information about groups in regular expressions, see Grouping Constructs.

If groupname is not the name of a capturing group in the collection, or if groupname is the name 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.

The following example defines a regular expression that consists of two named groups. The first group, numbers, captures one or more consecutive digits. The second group, letter, matches a single character. Because the regular expression engine looks for zero or one occurrence of the pattern defined by the numbers group, the numbers group is not always present even if a match is successful. The example then illustrates the result when the Item[String] 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 (?<numbers>\d+)*(?<letter>\w)\k<letter>, which is interpreted as shown in the following table.




Match one or more occurrence of a decimal digit. Name this the numbers capturing group. Match this pattern either zero or one time.


Match a single word character. Name this the letter capturing group.


Match the string captured by the letter capturing group.

using System;
using System.Text.RegularExpressions;

public class Example
   public static void Main()
      string pattern = @"(?<numbers>\d+)*(?<letter>\w)\k<letter>";
      string input = "AA";
      Match match = Regex.Match(input, pattern);

      // Get the first named group.
      Group group1 = match.Groups["numbers"];
      Console.WriteLine("Group 'numbers' value: {0}", group1.Success ? group1.Value : "Empty");

      // Get the second named group.
      Group group2 = match.Groups["letter"];
      Console.WriteLine("Group 'letter' value: {0}", group2.Success ? group2.Value : "Empty");

      // Get a non-existent group.
      Group group3 = match.Groups["none"];
      Console.WriteLine("Group 'none' value: {0}", group3.Success ? group3.Value : "Empty");
// The example displays the following output: 
//       Group 'numbers' value: Empty 
//       Group 'letter' value: A 
//       Group 'none' value: Empty

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0




August 2009

Expanded the Remarks section and added an example.

Customer feedback.