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


Group Класс

Определение

Представляет результаты из одной группы записи.

public ref class Group : System::Text::RegularExpressions::Capture
public class Group : System.Text.RegularExpressions.Capture
[System.Serializable]
public class Group : System.Text.RegularExpressions.Capture
type Group = class
    inherit Capture
[<System.Serializable>]
type Group = class
    inherit Capture
Public Class Group
Inherits Capture
Наследование
Group
Производный
Атрибуты

Комментарии

Записывающая группа может захватывать ноль, одну или несколько строк в одном совпадении из-за квантификаторов. (Дополнительные сведения см. в разделе Quantifiers.) Все подстроки, соответствующие одной группе записи, доступны из Group.Captures свойства. Сведения о последней записанной подстроке можно получить непосредственно из Value свойств и Index свойств. (То есть Group экземпляр эквивалентен последнему элементу коллекции, возвращаемому Captures свойством, который отражает последнюю запись, сделанную группой записи.)

Пример помогает уточнить эту связь между Group объектом и System.Text.RegularExpressions.CaptureCollection возвращаемым свойством Captures . Шаблон (\b(\w+?)[,:;]?\s?)+[?.!] регулярного выражения соответствует всем предложениям. Определение регулярного выражения показано в следующей таблице.

Рисунок Описание
\b Начинайте сопоставление на границе слова.
(\w+?) Найти одно или несколько буквенных символов, но минимальное количество. Это вторая (внутренняя) запись группы. (Первая группа захвата включает \b элемент языка.)
[,:;]? Соответствует нулю или одному вхождения запятой, двоеточию или точкой с запятой.
\s? Соответствует нулю или одному вхождения символа пробела.
(\b(\w+?)[,:;]?\s?)+ Соответствует шаблону, состоящему из границы слова, одного или нескольких символов слова, символа препинания и символа пробела один или несколько раз. Это первая группа захвата.
[?.!] Соответствует любому вхождениям периода, вопросительного знака или восклицательного знака.

В этом шаблоне регулярного выражения подпаттерн (\w+?) предназначен для сопоставления нескольких слов в предложении. Однако значение Group объекта представляет только последнее совпадение, которое (\w+?) фиксирует, в то время как Captures свойство возвращает CaptureCollection значение, представляющее весь захваченный текст. Как показано в выходных данных, CaptureCollection вторая группа записи содержит четыре объекта. Последнее из них соответствует объекту Group .

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"(\b(\w+?)[,:;]?\s?)+[?.!]";
      string input = "This is one sentence. This is a second sentence.";

      Match match = Regex.Match(input, pattern);
      Console.WriteLine("Match: " + match.Value);
      int groupCtr = 0;
      foreach (Group group in match.Groups)
      {
         groupCtr++;
         Console.WriteLine("   Group {0}: '{1}'", groupCtr, group.Value);
         int captureCtr = 0;
         foreach (Capture capture in group.Captures)
         {
            captureCtr++;
            Console.WriteLine("      Capture {0}: '{1}'", captureCtr, capture.Value);
         }
      }   
   }
}
// The example displays the following output:
//       Match: This is one sentence.
//          Group 1: 'This is one sentence.'
//             Capture 1: 'This is one sentence.'
//          Group 2: 'sentence'
//             Capture 1: 'This '
//             Capture 2: 'is '
//             Capture 3: 'one '
//             Capture 4: 'sentence'
//          Group 3: 'sentence'
//             Capture 1: 'This'
//             Capture 2: 'is'
//             Capture 3: 'one'
//             Capture 4: 'sentence'
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "(\b(\w+?)[,:;]?\s?)+[?.!]"
      Dim input As String = "This is one sentence. This is a second sentence."

      Dim match As Match = Regex.Match(input, pattern)
      Console.WriteLine("Match: " + match.Value)
      Dim groupCtr As Integer = 0
      For Each group As Group In match.Groups
         groupCtr += 1
         Console.WriteLine("   Group {0}: '{1}'", groupCtr, group.Value)
         Dim captureCtr As Integer = 0
         For Each capture As Capture In group.Captures
            captureCtr += 1
            Console.WriteLine("      Capture {0}: '{1}'", captureCtr, capture.Value)
         Next
      Next   
   End Sub
End Module
' The example displays the following output:
'       Match: This is one sentence.
'          Group 1: 'This is one sentence.'
'             Capture 1: 'This is one sentence.'
'          Group 2: 'sentence'
'             Capture 1: 'This '
'             Capture 2: 'is '
'             Capture 3: 'one '
'             Capture 4: 'sentence'
'          Group 3: 'sentence'
'             Capture 1: 'This'
'             Capture 2: 'is'
'             Capture 3: 'one'
'             Capture 4: 'sentence'

Свойства

Имя Описание
Captures

Возвращает коллекцию всех записей, сопоставленных группой захвата, в самом левом порядке (или в самом правом порядке, если регулярное выражение изменяется с параметром RightToLeft ). Коллекция может содержать ноль или больше элементов.

Index

Позиция в исходной строке, в которой найден первый символ захваченной подстроки.

(Унаследовано от Capture)
Length

Возвращает длину захваченной подстроки.

(Унаследовано от Capture)
Name

Возвращает имя группы записи, представленной текущим экземпляром.

Success

Возвращает значение, указывающее, выполнен ли совпадение успешно.

Value

Возвращает захваченную подстроку из входной строки.

(Унаследовано от Capture)
ValueSpan

Возвращает захваченный диапазон из входной строки.

(Унаследовано от Capture)

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Synchronized(Group)

Group Возвращает объект, эквивалентный предоставленному, безопасному для совместного использования между несколькими потоками.

ToString()

Извлекает захваченную подстроку из входной строки путем вызова Value свойства.

(Унаследовано от Capture)

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