GroupCollection.Item[] Propriedade

Definição

Permite acesso a um único membro da coleção por índice de inteiros ou de cadeia de caracteres.

Sobrecargas

Item[Int32]

Permite acesso a um membro da coleção pelo índice de inteiros.

Item[String]

Habilita o acesso a um membro da coleção pelo índice de cadeia de caracteres.

Item[Int32]

Permite acesso a um membro da coleção pelo índice de inteiros.

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

Parâmetros

groupnum
Int32

O índice baseado em zero do membro da coleção a ser recuperado.

Valor da propriedade

Group

O membro da coleção especificado pelo groupnum.

Implementações

Exemplos

O exemplo a seguir define uma expressão regular que consiste em dois grupos numerados. O primeiro grupo captura um ou mais dígitos consecutivos. O segundo grupo corresponde a um único caractere. Como o mecanismo de expressão regular procura zero ou uma ocorrência do primeiro grupo, ele nem sempre encontra uma correspondência mesmo se a correspondência de expressão regular for bem-sucedida. O exemplo ilustra o resultado quando a Item[Int32] propriedade é usada para recuperar um grupo sem correspondência, um grupo correspondente e um grupo que não é definido na expressão regular. O exemplo define um padrão (\d+)*(\w)\2de expressão regular, que é interpretado conforme mostrado na tabela a seguir.

Padrão Descrição
(\d+)* Corresponde a uma ou mais ocorrências de um dígito decimais. Este é o primeiro grupo de captura. Corresponda a esse padrão zero ou uma vez.
(\w) Este é o segundo grupo de captura.
\k Corresponda à cadeia de caracteres capturada pelo segundo grupo de captura.
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

Comentários

A Item[Int32] propriedade é o índice (em C#) ou a propriedade padrão (em Visual Basic) da GroupCollection classe. Ele permite enumerar os membros da coleção usando uma foreach instrução em C# ou uma For Each instrução em Visual Basic.

Você também pode usar essa propriedade para recuperar grupos capturados individuais pelo número de índice. Você pode recuperar uma matriz que contém os números de todos os grupos de captura em uma expressão regular chamando o método de instância Regex.GetGroupNumbers . Você também pode mapear grupos de captura nomeados para seus números chamando o método de instância Regex.GroupNumberFromName .

Você pode determinar o número de itens na coleção recuperando o valor da Count propriedade. Valores válidos para o groupnum intervalo de parâmetros de 0 a 1 menor que o número de itens na coleção.

O GroupCollection objeto retornado pela Match.Groups propriedade sempre tem pelo menos um membro. Se o mecanismo de expressão regular não encontrar nenhuma correspondência em uma cadeia de caracteres de entrada específica, o único Group objeto na coleção terá sua Group.Success propriedade definida false como .Group.Value String.Empty

Se groupnum não for o índice de um membro da coleção ou se groupnum for o índice de um grupo de captura que não foi correspondido na cadeia de caracteres de entrada, o método retornará um Group objeto cuja Group.Success propriedade é false e cuja Group.Value propriedade é String.Empty.

Confira também

Aplica-se a

Item[String]

Habilita o acesso a um membro da coleção pelo índice de cadeia de caracteres.

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

Parâmetros

groupname
String

O nome de um grupo de captura.

Valor da propriedade

Group

O membro da coleção especificado pelo groupname.

Implementações

Exemplos

O exemplo a seguir define uma expressão regular que consiste em dois grupos nomeados. O primeiro grupo numberscaptura um ou mais dígitos consecutivos. O segundo grupo corresponde lettera um único caractere. Como o mecanismo de expressão regular procura zero ou uma ocorrência do padrão definido pelo numbers grupo, o numbers grupo nem sempre está presente, mesmo se uma correspondência for bem-sucedida. O exemplo ilustra o resultado quando a Item[String] propriedade é usada para recuperar um grupo sem correspondência, um grupo correspondente e um grupo que não é definido na expressão regular. O exemplo define um padrão (?<numbers>\d+)*(?<letter>\w)\k<letter>de expressão regular, que é interpretado conforme mostrado na tabela a seguir.

Padrão Descrição
(?<numbers>\d+)* Corresponde a uma ou mais ocorrências de um dígito decimais. Nomeie esse grupo numbers de captura. Corresponda a esse padrão zero ou uma vez.
(?<letter>\w) Corresponde a um caractere de palavra única. Nomeie esse grupo letter de captura.
\k<letter> Corresponda à cadeia de caracteres capturada pelo letter grupo de captura.
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

Comentários

groupNamepode ser o nome de um grupo de captura definido pelo (?< elemento de nome>) em uma expressão regular ou a representação de cadeia de caracteres do número de um grupo de captura definido por um constructo de agrupamento. Para obter mais informações sobre grupos em expressões regulares, consulte Construções de agrupamento.

Você pode recuperar os nomes de todos os grupos capturados em um Regex objeto chamando o Regex.GetGroupNames método. Você também pode mapear os números de grupos de captura em uma expressão regular para seus nomes chamando o Regex.GroupNameFromNumber método. Os nomes individuais da matriz podem então ser passados para a Item[String] propriedade para recuperar a cadeia de caracteres capturada.

Se groupname não for o nome de um grupo de captura na coleção ou se groupname for o nome de um grupo de captura que não foi correspondido na cadeia de caracteres de entrada, o método retornará um Group objeto cuja Group.Success propriedade é false e cuja Group.Value propriedade é String.Empty.

Confira também

Aplica-se a