Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Proprietà Match.Groups

 

Data di pubblicazione: ottobre 2016

Ottiene una raccolta di gruppi corrispondenti all'espressione regolare.

Spazio dei nomi:   System.Text.RegularExpressions
Assembly:  System (in System.dll)

public virtual GroupCollection Groups { get; }

Valore proprietà

Type: System.Text.RegularExpressions.GroupCollection

Gruppi di caratteri corrispondenti al criterio.

Un criterio di espressione regolare può includere sottoespressioni, che vengono definite racchiudendo una parte del criterio di espressione regolare tra parentesi. Ogni sottoespressione forma un gruppo. Il Groups fornisce l'accesso alle informazioni su queste sottoespressioni. Ad esempio, il criterio di espressione regolare (\d{3})-(\d{3}-\d{4}), che corrisponde a numeri di telefono Nord America, dispone di due sottoespressioni. Il primo è costituito da codice di area, che costituisce le prime tre cifre del numero di telefono. Questo gruppo viene acquisito dalla prima parte dell'espressione regolare, (\d{3}). Il secondo è costituito il numero di telefono singolo, che costituisce le ultime sette cifre del numero di telefono. Questo gruppo viene acquisito dalla seconda parte dell'espressione regolare, (\d{3}-\d{4}). Questi due gruppi possono quindi essere recuperati i GroupCollection oggetto restituito dal Groups proprietà, come illustrato nell'esempio seguente.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"(\d{3})-(\d{3}-\d{4})";
      string input = "212-555-6666 906-932-1111 415-222-3333 425-888-9999";
      MatchCollection matches = Regex.Matches(input, pattern);

      foreach (Match match in matches)
      {
         Console.WriteLine("Area Code:        {0}", match.Groups[1].Value);
         Console.WriteLine("Telephone number: {0}", match.Groups[2].Value);
         Console.WriteLine();
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//       Area Code:        212
//       Telephone number: 555-6666
//       
//       Area Code:        906
//       Telephone number: 932-1111
//       
//       Area Code:        415
//       Telephone number: 222-3333
//       
//       Area Code:        425
//       Telephone number: 888-9999

Il GroupCollection oggetto restituito dalla Match.Groups proprietà è un oggetto di raccolta in base zero che ha sempre almeno un membro. Se il motore delle espressioni regolari non trova alcuna corrispondenza in una particolare stringa di input, la Group.Success proprietà dell'unico Group oggetto della raccolta (l'oggetto in corrispondenza dell'indice 0) è impostato su false e Group dell'oggetto Value è impostata su String.Empty. Se il motore delle espressioni regolari trova una corrispondenza, il primo elemento di GroupCollection oggetto (l'elemento in corrispondenza dell'indice 0) restituito dalla Groups proprietà contiene una stringa che corrisponde al modello di espressione regolare intera. Ogni elemento successivo, dall'indice uno verso l'alto, rappresenta un gruppo acquisito, se l'espressione regolare include gruppi di acquisizione. Per ulteriori informazioni, vedere la sezione "Raggruppamento costruisce e oggetti di espressione regolare" del Costrutti di raggruppamento nelle espressioni regolari articolo.

Nell'esempio seguente tenta di corrispondono a un criterio di espressione regolare con una stringa di esempio. Nell'esempio viene utilizzata la Groups proprietà per archiviare le informazioni recuperate dalla corrispondenza da visualizzare nella console.

using System;
using System.Text.RegularExpressions;

class Example 
{
   static void Main() 
   {
      string text = "One car red car blue car";
      string pat = @"(\w+)\s+(car)";

      // Instantiate the regular expression object.
      Regex r = new Regex(pat, RegexOptions.IgnoreCase);

      // Match the regular expression pattern against a text string.
      Match m = r.Match(text);
      int matchCount = 0;
      while (m.Success) 
      {
         Console.WriteLine("Match"+ (++matchCount));
         for (int i = 1; i <= 2; i++) 
         {
            Group g = m.Groups[i];
            Console.WriteLine("Group"+i+"='" + g + "'");
            CaptureCollection cc = g.Captures;
            for (int j = 0; j < cc.Count; j++) 
            {
               Capture c = cc[j];
               System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
            }
         }
         m = m.NextMatch();
      }
   }
}
// This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: