Condividi tramite


GroupCollection.Item[] Proprietà

Definizione

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)\2di 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

groupNamepuò 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.

Vedi anche

Si applica a