GroupCollection.Item Property (String)


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 in Regular Expressions.

You can retrieve the names of all the captured groups in a Regex object by calling the Regex.GetGroupNames method. You can also map the numbers of capturing groups in a regular expression to their names by calling the Regex.GroupNameFromNumber method. Individual names from the array can then be passed to the Item[String] property to retrieve the captured string.

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

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top