Прочитать на английском

Поделиться через


Match.Groups Свойство

Определение

Получает коллекцию групп, соответствующих регулярному выражению.

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

Значение свойства

Группы символов, соответствующие шаблону.

Примеры

В следующем примере предпринимается попытка сопоставить шаблон регулярного выражения с примером строки. В примере свойство используется Groups для хранения сведений, полученных совпадением для отображения в консоли.

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

Комментарии

Шаблон регулярного выражения может включать вложенные выражения, которые определяются путем заключения части шаблона регулярного выражения в круглые скобки. Каждая такая часть выражения формирует группу. Свойство Groups предоставляет доступ к сведениям о совпадениях с частью выражения. Например, шаблон (\d{3})-(\d{3}-\d{4})регулярного выражения , соответствующий номерам телефонов в Северной Америке, имеет две части выражения. Первый состоит из кода города, который состоит из первых трех цифр номера телефона. Эта группа захватывается первой частью регулярного выражения , (\d{3}). Второй состоит из отдельного номера телефона, который состоит из последних семи цифр номера телефона. Эта группа фиксируется второй частью регулярного выражения , (\d{3}-\d{4}). Затем эти две группы можно извлечь из GroupCollection объекта, возвращаемого свойством Groups , как показано в следующем примере.

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 , возвращаемый свойством Match.Groups , является объектом коллекции с нуля, который всегда имеет по крайней мере один элемент. Если обработчик регулярных выражений не может найти совпадения в определенной входной строке, Group.Success свойству одного Group объекта в коллекции (объекту с индексом false 0) присваивается значение , а свойству Group объекта Value присваивается значение String.Empty. Если обработчик регулярных выражений может найти совпадение, первый элемент GroupCollection объекта (элемент с индексом 0), возвращаемый свойством Groups , содержит строку, соответствующую всему шаблону регулярного выражения. Каждый последующий элемент, начиная с одного индекса вверх, представляет захватываемую группу, если регулярное выражение включает захватываемые группы. Дополнительные сведения см. в разделе "Конструкции группирования и объекты регулярных выражений" статьи Конструкции группирования .

Применяется к

Продукт Версии
.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