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.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) |
Возвращает объект |
ToString() |
Извлекает записанную подстроку из входной строки путем вызова свойства Value. (Унаследовано от Capture) |