GroupCollection.Item[] Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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)\2
de 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
groupName
puede 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.