GroupCollection.Item[] Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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]
- Origem:
- GroupCollection.cs
- Origem:
- GroupCollection.cs
- Origem:
- GroupCollection.cs
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
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. Em seguida, 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)\2
de 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 decimal. 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 (no 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 no 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 . Os valores válidos para o groupnum
parâmetro variam de 0 a 1 a menos do 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 como false
e sua Group.Value
propriedade definida como 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]
- Origem:
- GroupCollection.cs
- Origem:
- GroupCollection.cs
- Origem:
- GroupCollection.cs
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
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, numbers
, captura um ou mais dígitos consecutivos. O segundo grupo, letter
, corresponde a 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. Em seguida, 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 decimal. Nomeie esse numbers grupo de captura. Corresponda a esse padrão zero ou uma vez. |
(?<letter>\w) |
Corresponder a um caractere de palavra única. Nomeie esse letter grupo 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
groupName
pode ser o nome de um grupo de captura definido pelo (?<
elemento name>)
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 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.