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 System.Text.RegularExpressions.Group this[int groupnum] { get; }

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

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

.NET 10 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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 System.Text.RegularExpressions.Group this[string groupname] { get; }

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

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

.NET 10 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0