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
- Наследование
- Производный
- Атрибуты
Комментарии
Записывающая группа может захватывать ноль, одну или несколько строк в одном совпадении из-за квантификаторов. (Дополнительные сведения см. в разделе 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) |
|
| ToString() |
Извлекает захваченную подстроку из входной строки путем вызова Value свойства. (Унаследовано от Capture) |