GroupCollection.Item[] Propiedad

Definición

Permite el acceso a un solo miembro de la colección por índice de cadena o de entero.

Sobrecargas

Item[Int32]

Habilita el acceso a un miembro de la colección por índice de entero.

Item[String]

Habilita el acceso a un miembro de la colección por índice de cadena.

Item[Int32]

Source:
GroupCollection.cs
Source:
GroupCollection.cs
Source:
GroupCollection.cs

Habilita el acceso a un miembro de la colección por índice de entero.

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

Índice de base cero del miembro de la colección que se va a recuperar.

Valor de propiedad

Miembro de la colección especificado por groupnum.

Implementaciones

Ejemplos

En el ejemplo siguiente se define una expresión regular que consta de dos grupos numerados. El primer grupo captura uno o varios dígitos consecutivos. El segundo grupo coincide con un solo carácter. Dado que el motor de expresiones regulares busca cero o una aparición del primer grupo, no siempre encuentra una coincidencia aunque la coincidencia de la expresión regular sea correcta. A continuación, en el ejemplo se muestra el resultado cuando se usa la Item[Int32] propiedad para recuperar un grupo no coincidente, un grupo coincidente y un grupo que no está definido en la expresión regular. En el ejemplo se define un patrón (\d+)*(\w)\2de expresión regular , que se interpreta como se muestra en la tabla siguiente.

Modelo Descripción
(\d+)* Coincide con una o varias repeticiones de un dígito decimal. Este es el primer grupo de captura. Coincide con este patrón de cero o una vez.
(\w) Este es el segundo grupo de captura.
\k Coincide con la cadena capturada por el 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

Comentarios

La Item[Int32] propiedad es el índice (en C#) o la propiedad predeterminada (en Visual Basic) de la GroupCollection clase . Permite enumerar los miembros de la colección mediante una foreach instrucción en C# o una For Each instrucción en Visual Basic.

También puede usar esta propiedad para recuperar grupos capturados individuales por su número de índice. Puede recuperar una matriz que contenga los números de todos los grupos de captura en una expresión regular llamando al método de instancia Regex.GetGroupNumbers . También puede asignar grupos de captura con nombre a sus números llamando al método de instancia Regex.GroupNumberFromName .

Puede determinar el número de elementos de la colección recuperando el valor de la Count propiedad . Valores válidos para el groupnum intervalo de parámetros de 0 a uno menor que el número de elementos de la colección.

El GroupCollection objeto devuelto por la Match.Groups propiedad siempre tiene al menos un miembro. Si el motor de expresiones regulares no encuentra ninguna coincidencia en una cadena de entrada determinada, el único Group objeto de la colección tiene su Group.Success propiedad establecida false en y su Group.Value propiedad establecida String.Emptyen .

Si groupnum no es el índice de un miembro de la colección, o si groupnum es el índice de un grupo de captura que no se ha emparejado en la cadena de entrada, el método devuelve un Group objeto cuya Group.Success propiedad es false y cuya Group.Value propiedad es String.Empty.

Consulte también

Se aplica a

Item[String]

Source:
GroupCollection.cs
Source:
GroupCollection.cs
Source:
GroupCollection.cs

Habilita el acceso a un miembro de la colección por índice de cadena.

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

Nombre de un grupo de captura.

Valor de propiedad

Miembro de la colección especificado por groupname.

Implementaciones

Ejemplos

En el ejemplo siguiente se define una expresión regular que consta de dos grupos con nombre. El primer grupo, numbers, captura uno o varios dígitos consecutivos. El segundo grupo, letter, coincide con un solo carácter. Dado que el motor de expresiones regulares busca cero o una aparición del patrón definido por el numbers grupo, el numbers grupo no siempre está presente aunque una coincidencia sea correcta. A continuación, en el ejemplo se muestra el resultado cuando se usa la Item[String] propiedad para recuperar un grupo no coincidente, un grupo coincidente y un grupo que no está definido en la expresión regular. En el ejemplo se define un patrón (?<numbers>\d+)*(?<letter>\w)\k<letter>de expresión regular , que se interpreta como se muestra en la tabla siguiente.

Modelo Descripción
(?<numbers>\d+)* Coincide con una o varias repeticiones de un dígito decimal. Asigne un nombre al numbers grupo de captura. Coincide con este patrón de cero o una vez.
(?<letter>\w) Coincide con un solo carácter de palabra. Asigne un nombre al letter grupo de captura.
\k<letter> Coincide con la cadena capturada por el 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

Comentarios

groupNamepuede ser el nombre de un grupo de captura definido por el (?< elemento name>) en una expresión regular o la representación de cadena del número de un grupo de captura definido por una construcción de agrupación. Para obtener más información sobre los grupos en expresiones regulares, vea Construcciones de agrupación.

Puede recuperar los nombres de todos los grupos capturados en un Regex objeto llamando al Regex.GetGroupNames método . También puede asignar los números de captura de grupos en una expresión regular a sus nombres llamando al Regex.GroupNameFromNumber método . Los nombres individuales de la matriz se pueden pasar a la Item[String] propiedad para recuperar la cadena capturada.

Si groupname no es el nombre de un grupo de captura de la colección, o si groupname es el nombre de un grupo de captura que no se ha emparejado en la cadena de entrada, el método devuelve un Group objeto cuya Group.Success propiedad es false y cuya Group.Value propiedad es String.Empty.

Consulte también

Se aplica a