Capture Класс

Определение

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

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

Примеры

В следующем примере определяется регулярное выражение, которое соответствует предложениям, которые не содержат препинания, кроме периода (".

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "Yes. This dog is very friendly.";
      string pattern = @"((\w+)[\s.])+";
      foreach (Match match in Regex.Matches(input, pattern))
      {
         Console.WriteLine("Match: {0}", match.Value);
         for (int groupCtr = 0; groupCtr < match.Groups.Count; groupCtr++)
         {
            Group group = match.Groups[groupCtr];
            Console.WriteLine("   Group {0}: {1}", groupCtr, group.Value);
            for (int captureCtr = 0; captureCtr < group.Captures.Count; captureCtr++)
               Console.WriteLine("      Capture {0}: {1}", captureCtr, 
                                 group.Captures[captureCtr].Value);
         }                      
      }
   }
}
// The example displays the following output:
//       Match: Yes.
//          Group 0: Yes.
//             Capture 0: Yes.
//          Group 1: Yes.
//             Capture 0: Yes.
//          Group 2: Yes
//             Capture 0: Yes
//       Match: This dog is very friendly.
//          Group 0: This dog is very friendly.
//             Capture 0: This dog is very friendly.
//          Group 1: friendly.
//             Capture 0: This
//             Capture 1: dog
//             Capture 2: is
//             Capture 3: very
//             Capture 4: friendly.
//          Group 2: friendly
//             Capture 0: This
//             Capture 1: dog
//             Capture 2: is
//             Capture 3: very
//             Capture 4: friendly
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Yes. This dog is very friendly."
      Dim pattern As String = "((\w+)[\s.])+"
      For Each match As Match In Regex.Matches(input, pattern)
         Console.WriteLine("Match: {0}", match.Value)
         For groupCtr As Integer = 0 To match.Groups.Count - 1
            Dim group As Group = match.Groups(groupCtr)
            Console.WriteLine("   Group {0}: {1}", groupCtr, group.Value)
            For captureCtr As Integer = 0 To group.Captures.Count - 1
               Console.WriteLine("      Capture {0}: {1}", captureCtr, _
                                 group.Captures(captureCtr).Value)
            Next
         Next                      
      Next
   End Sub
End Module
' The example displays the following output:
'       Match: Yes.
'          Group 0: Yes.
'             Capture 0: Yes.
'          Group 1: Yes.
'             Capture 0: Yes.
'          Group 2: Yes
'             Capture 0: Yes
'       Match: This dog is very friendly.
'          Group 0: This dog is very friendly.
'             Capture 0: This dog is very friendly.
'          Group 1: friendly.
'             Capture 0: This
'             Capture 1: dog
'             Capture 2: is
'             Capture 3: very
'             Capture 4: friendly.
'          Group 2: friendly
'             Capture 0: This
'             Capture 1: dog
'             Capture 2: is
'             Capture 3: very
'             Capture 4: friendly

Шаблон регулярного выражения ((\w+)[\s.])+ определяется, как показано в следующей таблице. Обратите внимание, что в этом регулярном выражении квантификатор (+) применяется ко всему регулярному выражению.

Рисунок Описание
(\w+) Найти один или несколько символов слова. Это вторая группа захвата.
[\s.]) Сопоставление символа пробела или периода (".").
((\w+)[\s.]) Соответствует одному или нескольким символам слова, за которым следует символ пробела или период ("."). Это первая группа захвата.
((\w+)[\s.])+ Совпадает с одним или несколькими вхождениями символов слова или символов, за которым следует символ пробела или период (".").

В этом примере входная строка состоит из двух предложений. Как показано в выходных данных, первое предложение состоит только из одного слова, поэтому CaptureCollection объект имеет один Capture объект, представляющий тот же захват, что Group и объект. Второе предложение состоит из нескольких слов, поэтому Group объекты содержат только сведения о последнем сопоставленном подтексте. Группа 1, представляющая первый захват, содержит последнее слово в предложении с закрывающим периодом. Группа 2, представляющая второй захват, содержит последнее слово в предложении. Capture Однако объекты в объекте группы CaptureCollection фиксируют каждое совпадение с вложенным выражением. Объекты Capture в первой коллекции записей группы содержат сведения о каждом захваченном слове и символе пробела или периоде. Объекты Capture во второй коллекции записей группы содержат сведения о каждом захваченном слове.

Комментарии

Объект Capture неизменяем и не имеет общедоступного конструктора. Экземпляры возвращаются через CaptureCollection объект, который возвращается свойствами и Group.Captures свойствамиMatch.Captures. Однако свойство Match.Captures предоставляет сведения о том же совпадении, что Match и объект.

Если к группе записи не применяется квантификатор, Group.Captures свойство возвращает CaptureCollection объект с одним Capture объектом, предоставляющим сведения о том же захвате, что Group и объект. Если вы применяете квантификатор к группе записи, Group.IndexGroup.Lengthсвойства и Group.Value свойства предоставляют сведения только о последней захваченной группе, а Capture объекты в CaptureCollection предоставленных сведениях обо всех записях вложенных выражений. Пример содержит иллюстрацию.

Свойства

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

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

Length

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

Value

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

ValueSpan

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

Методы

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

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

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

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

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

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

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

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

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

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

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

См. также раздел