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


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
Производный
Атрибуты

Комментарии

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

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

Шаблон Описание
\b Совпадение должно начинаться на границе слова.
(\w+?) Соответствует одному или нескольким символам слова (как можно меньшему количеству). Это вторая (внутренняя) захватываемая группа. (Первая захватываемая группа включает \b элемент language.)
[,:;]? Совпадение с нулевым или одним вхождением запятой, двоеточием или точкой с запятой.
\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)

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