GroupCollection.Item[] Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Consente l'accesso a un singolo membro della raccolta in base a un indice intero o stringa.
Overload
Item[Int32] |
Consente l'accesso a un membro della raccolta in base a un indice intero. |
Item[String] |
Consente l'accesso a un membro della raccolta in base a un indice stringa. |
Item[Int32]
- Origine:
- GroupCollection.cs
- Origine:
- GroupCollection.cs
- Origine:
- GroupCollection.cs
Consente l'accesso a un membro della raccolta in base a un indice intero.
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
Parametri
- groupnum
- Int32
Indice in base zero del membro della raccolta da recuperare.
Valore della proprietà
Membro della raccolta specificata da groupnum
.
Implementazioni
Esempio
Nell'esempio seguente viene definita un'espressione regolare costituita da due gruppi numerati. Il primo gruppo acquisisce una o più cifre consecutive. Il secondo gruppo corrisponde a un singolo carattere. Poiché il motore delle espressioni regolari cerca zero o una occorrenza del primo gruppo, non trova sempre una corrispondenza anche se la corrispondenza dell'espressione regolare ha esito positivo. Nell'esempio viene quindi illustrato il risultato quando la Item[Int32] proprietà viene utilizzata per recuperare un gruppo senza corrispondenza, un gruppo corrispondente e un gruppo non definito nell'espressione regolare. L'esempio definisce un criterio (\d+)*(\w)\2
di espressione regolare , interpretato come illustrato nella tabella seguente.
Modello | Descrizione |
---|---|
(\d+)* |
Trova la corrispondenza con una o più occorrenze di una cifra decimale. Equivale al primo gruppo di acquisizione. Trova la corrispondenza con questo modello zero o una volta. |
(\w) |
Equivale al secondo gruppo di acquisizione. |
\k |
Trova la corrispondenza con la stringa acquisita dal secondo gruppo di acquisizione. |
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
Commenti
La Item[Int32] proprietà è l'indice (in C#) o la proprietà predefinita (in Visual Basic) della GroupCollection classe . Consente di enumerare i membri della raccolta usando un'istruzione foreach
in C# o un'istruzione For Each
in Visual Basic.
È anche possibile usare questa proprietà per recuperare singoli gruppi acquisiti in base al numero di indice. È possibile recuperare una matrice contenente i numeri di tutti i gruppi di acquisizione in un'espressione regolare chiamando il metodo di istanza Regex.GetGroupNumbers . È anche possibile eseguire il mapping dei gruppi di acquisizione denominati ai relativi numeri chiamando il metodo di istanza Regex.GroupNumberFromName .
È possibile determinare il numero di elementi nella raccolta recuperando il valore della Count proprietà . Valori validi per l'intervallo groupnum
di parametri compreso tra 0 e uno minore del numero di elementi nella raccolta.
L'oggetto GroupCollection restituito dalla Match.Groups proprietà ha sempre almeno un membro. Se il motore delle espressioni regolari non riesce a trovare corrispondenze in una determinata stringa di input, il singolo Group oggetto dell'insieme ha la proprietà Group.Success impostata su false
e la relativa Group.Value
proprietà è impostata su String.Empty.
Se groupnum
non è l'indice di un membro dell'insieme o se groupnum
è l'indice di un gruppo di acquisizione non corrispondente nella stringa di input, il metodo restituisce un Group oggetto la cui Group.Success proprietà è false
e la cui Group.Value
proprietà è String.Empty.
Vedi anche
Si applica a
Item[String]
- Origine:
- GroupCollection.cs
- Origine:
- GroupCollection.cs
- Origine:
- GroupCollection.cs
Consente l'accesso a un membro della raccolta in base a un indice stringa.
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
Parametri
- groupname
- String
Nome di un gruppo di acquisizione.
Valore della proprietà
Membro della raccolta specificata da groupname
.
Implementazioni
Esempio
Nell'esempio seguente viene definita un'espressione regolare costituita da due gruppi denominati. Il primo gruppo, numbers
, acquisisce una o più cifre consecutive. Il secondo gruppo, letter
, corrisponde a un singolo carattere. Poiché il motore delle espressioni regolari cerca zero o una occorrenza del criterio definito dal numbers
gruppo, il numbers
gruppo non è sempre presente anche se una corrispondenza ha esito positivo. Nell'esempio viene quindi illustrato il risultato quando la Item[String] proprietà viene utilizzata per recuperare un gruppo senza corrispondenza, un gruppo corrispondente e un gruppo non definito nell'espressione regolare. L'esempio definisce un criterio (?<numbers>\d+)*(?<letter>\w)\k<letter>
di espressione regolare , interpretato come illustrato nella tabella seguente.
Modello | Descrizione |
---|---|
(?<numbers>\d+)* |
Trova la corrispondenza con una o più occorrenze di una cifra decimale. Denominare il numbers gruppo di acquisizione. Trova la corrispondenza con questo modello zero o una volta. |
(?<letter>\w) |
Trova la corrispondenza con un singolo carattere di parola. Denominare il letter gruppo di acquisizione. |
\k<letter> |
Trova la corrispondenza con la stringa acquisita dal letter gruppo di acquisizione. |
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
Commenti
groupName
può essere il nome di un gruppo di acquisizione definito dall'elemento name>)
in un'espressione (?<
regolare o la rappresentazione di stringa del numero di un gruppo di acquisizione definito da un costrutto di raggruppamento. Per altre informazioni sui gruppi nelle espressioni regolari, vedere Costrutti di raggruppamento.
È possibile recuperare i nomi di tutti i gruppi acquisiti in un Regex oggetto chiamando il Regex.GetGroupNames metodo . È anche possibile eseguire il mapping dei numeri di gruppi di acquisizione in un'espressione regolare ai relativi nomi chiamando il Regex.GroupNameFromNumber metodo . I singoli nomi della matrice possono quindi essere passati alla Item[String] proprietà per recuperare la stringa acquisita.
Se groupname
non è il nome di un gruppo di acquisizione nell'insieme o se groupname
è il nome di un gruppo di acquisizione non corrispondente nella stringa di input, il metodo restituisce un Group oggetto la cui Group.Success proprietà è false
e la cui Group.Value
proprietà è String.Empty.