GroupCollection.Item Property (String)
Enables access to a member of the collection by string index.
Assembly: System (in System.dll)
Parameters
- groupname
-
Type:
System.String
The name of a capturing group.
Property Value
Type: System.Text.RegularExpressions.GroupThe 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.
Pattern | Description |
|---|---|
(?<numbers>\d+)* | Match one or more occurrence of a decimal digit. Name this the numbers capturing group. Match this pattern either zero or one time. |
(?<letter>\w) | Match a single word character. Name this the letter capturing group. |
\k<letter> | 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
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1