GroupCollection.Item[] Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Enables access to a single member of the collection by integer or string index.
Overloads
Item[Int32] |
Enables access to a member of the collection by integer index. |
Item[String] |
Enables access to a member of the collection by string index. |
Item[Int32]
- Source:
- GroupCollection.cs
- Source:
- GroupCollection.cs
- Source:
- GroupCollection.cs
Enables access to a member of the collection by integer index.
public:
property System::Text::RegularExpressions::Group ^ default[int] { System::Text::RegularExpressions::Group ^ get(int groupnum); };
public System.Text.RegularExpressions.Group this[int groupnum] { get; }
member this.Item(int) : System.Text.RegularExpressions.Group
Default Public ReadOnly Property Item(groupnum As Integer) As Group
Parameters
- groupnum
- Int32
The zero-based index of the collection member to be retrieved.
Property Value
The member of the collection specified by groupnum
.
Implements
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. |
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(\d+)*(\w)\2";
string input = "AA";
Match match = Regex.Match(input, pattern);
// Get the first named group.
Group group1 = match.Groups[1];
Console.WriteLine("Group 1 value: {0}", group1.Success ? group1.Value : "Empty");
// Get the second named group.
Group group2 = match.Groups[2];
Console.WriteLine("Group 2 value: {0}", group2.Success ? group2.Value : "Empty");
// Get a non-existent group.
Group group3 = match.Groups[3];
Console.WriteLine("Group 3 value: {0}", group3.Success ? group3.Value : "Empty");
}
}
// The example displays the following output:
// Group 1 value: Empty
// Group 2 value: A
// Group 3 value: Empty
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
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)
Console.WriteLine("Group 1 value: {0}", If(group1.Success, group1.Value, "Empty"))
' Get the second named group.
Dim group2 As Group = match.Groups.Item(2)
Console.WriteLine("Group 2 value: {0}", If(group2.Success, group2.Value, "Empty"))
' Get a non-existent group.
Dim group3 As Group = match.Groups.Item(3)
Console.WriteLine("Group 3 value: {0}", If(group3.Success, group3.Value, "Empty"))
End Sub
End Module
' The example displays the following output:
' Group 1 value: Empty
' Group 2 value: A
' Group 3 value: Empty
Remarks
The Item[Int32] property is the index (in C#) or the default property (in Visual Basic) of the GroupCollection class. It allows you to enumerate the members of the collection by using a foreach
statement in C# or a For Each
statement in Visual Basic.
You can also use this property to retrieve individual captured groups by their index number. You can retrieve an array that contains the numbers of all capturing groups in a regular expression by calling the instance Regex.GetGroupNumbers method. You can also map named capturing groups to their numbers by calling the instance Regex.GroupNumberFromName method.
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.
The GroupCollection object returned by the Match.Groups property always has at least one member. If the regular expression engine cannot find any matches in a particular input string, the single Group object in the collection has its Group.Success property set to false
and its Group.Value
property set to String.Empty.
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.
See also
Applies to
Item[String]
- Source:
- GroupCollection.cs
- Source:
- GroupCollection.cs
- Source:
- GroupCollection.cs
Enables access to a member of the collection by string index.
public:
property System::Text::RegularExpressions::Group ^ default[System::String ^] { System::Text::RegularExpressions::Group ^ get(System::String ^ groupname); };
public System.Text.RegularExpressions.Group this[string groupname] { get; }
member this.Item(string) : System.Text.RegularExpressions.Group
Default Public ReadOnly Property Item(groupname As String) As Group
Parameters
- groupname
- String
The name of a capturing group.
Property Value
The member of the collection specified by groupname
.
Implements
Examples
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
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "(?<numbers>\d+)*(?<letter>\w)\k<letter>"
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("numbers")
Console.WriteLine("Group 'numbers' value: {0}", If(group1.Success, group1.Value, "Empty"))
' Get the second named group.
Dim group2 As Group = match.Groups.Item("letter")
Console.WriteLine("Group 'letter' value: {0}", If(group2.Success, group2.Value, "Empty"))
' Get a non-existent group.
Dim group3 As Group = match.Groups.Item("none")
Console.WriteLine("Group 'none' value: {0}", If(group3.Success, group3.Value, "Empty"))
End Sub
End Module
' The example displays the following output:
' Group 'numbers' value: Empty
' Group 'letter' value: A
' Group 'none' value: Empty
Remarks
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.
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.