Match.Groups Właściwość

Definicja

Pobiera kolekcję grup dopasowanych przez wyrażenie regularne.

C#
public virtual System.Text.RegularExpressions.GroupCollection Groups { get; }

Wartość właściwości

Grupy znaków dopasowane przez wzorzec.

Przykłady

Poniższy przykład próbuje dopasować wzorzec wyrażenia regularnego do przykładowego ciągu. W przykładzie użyto Groups właściwości do przechowywania informacji pobieranych przez dopasowanie do wyświetlania w konsoli programu .

C#
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

Uwagi

Wzorzec wyrażenia regularnego może zawierać podrażenia, które są definiowane przez dołączenie części wzorca wyrażenia regularnego w nawiasy. Każde takie podrażenie tworzy grupę. Właściwość Groups zapewnia dostęp do informacji o tych dopasowaniach podyrażenia. Na przykład wzorzec (\d{3})-(\d{3}-\d{4})wyrażenia regularnego , który odpowiada numerom telefonów w Ameryce Północnej, ma dwa podrażenia. Pierwszy składa się z kodu kierunkowego, który składa pierwsze trzy cyfry numeru telefonu. Ta grupa jest przechwytywana przez pierwszą część wyrażenia regularnego . (\d{3}) Drugi składa się z indywidualnego numeru telefonu, który składa ostatnie siedem cyfr numeru telefonu. Ta grupa jest przechwytywana przez drugą część wyrażenia regularnego . (\d{3}-\d{4}) Te dwie grupy można następnie pobrać z GroupCollection obiektu, który jest zwracany przez Groups właściwość, jak pokazano w poniższym przykładzie.

C#
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

GroupCollection Obiekt zwracany przez Match.Groups właściwość jest obiektem kolekcji zerowej, który zawsze ma co najmniej jeden element członkowski. Jeśli aparat wyrażeń regularnych nie może odnaleźć żadnych dopasowań w określonym ciągu wejściowym, Group.Success właściwość pojedynczego Group obiektu w kolekcji (obiekt w indeksie 0) jest ustawiona na false , a Group właściwość obiektu Value jest ustawiona na String.Emptywartość . Jeśli aparat wyrażeń regularnych GroupCollection może znaleźć dopasowanie, pierwszy element obiektu (element w indeksie 0) zwracany przez Groups właściwość zawiera ciąg zgodny z całym wzorcem wyrażenia regularnego. Każdy kolejny element z indeksu jeden w górę reprezentuje przechwyconą grupę, jeśli wyrażenie regularne zawiera przechwytywanie grup. Aby uzyskać więcej informacji, zobacz sekcję "Grouping Constructs and Regular Expression Objects" (Konstrukcje grupowania i obiekty wyrażeń regularnych) artykułu Grouping Constructs (Konstrukcje grupowania ).

Dotyczy

Produkt Wersje
.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