CaptureCollection CaptureCollection CaptureCollection CaptureCollection Class

Определение

Представляет набор записей, сделанных одной и той же группой записи.Represents the set of captures made by a single capturing group.

public ref class CaptureCollection : System::Collections::ICollection
[System.Serializable]
public class CaptureCollection : System.Collections.ICollection
type CaptureCollection = class
    interface ICollection
    interface IEnumerable
Public Class CaptureCollection
Implements ICollection
Наследование
CaptureCollectionCaptureCollectionCaptureCollectionCaptureCollection
Атрибуты
Реализации

Примеры

В следующем примере сравниваются Capture объекты в CaptureCollection объект, возвращаемый Group.Captures и Match.Captures свойства.The following example compares the Capture objects in the CaptureCollection object returned by the Group.Captures and Match.Captures properties. Он также сопоставляет Group объекты с Capture объекты в CaptureCollection возвращаемые Group.Captures свойство.It also compares Group objects with the Capture objects in the CaptureCollection returned by the Group.Captures property. В примере ниже два регулярных выражений для поиска соответствий в одну входную строку:The example uses the following two regular expressions to find matches in a single input string:

  • \b\w+\W{1,2}

    Этот шаблон регулярного выражения определяет слово, которое состоит из одного или нескольких символов слова, следуют одна или две числом несловообразующих символов, таких как пробелы или знаки препинания.This regular expression pattern identifies a word that consists of one or more word characters, followed by either one or two non-word characters such as white space or punctuation. Регулярное выражение не включает все группы записи.The regular expression does not include any capturing groups. Выходные данные примера показано, что Match объекта и CaptureCollection объектов, возвращенных Group.Captures и Match.Captures свойства содержат сведения о том же соответствии.The output from the example shows that both the Match object and the CaptureCollection objects returned by the Group.Captures and Match.Captures properties contain information about the same match.

  • (\b\w+\W{1,2})+

    Этот шаблон регулярного выражения определяет слов в предложении.This regular expression pattern identifies the words in a sentence. Шаблон определяет одной захватываемой группы, состоящий из одного или нескольких словообразующих символов, за которой следует один или два несловообразующих символов.The pattern defines a single capturing group that consists of one or more word characters followed by one or two non-word characters. Шаблон регулярного выражения использует + сопоставляет один или несколько вхождений данной группы.The regular expression pattern uses the + quantifier to match one or more occurrences of this group. Выходные данные в этом примере показано, что Match объекта и CaptureCollection объект, возвращаемый Match.Captures свойства содержат сведения о том же соответствии.The output from this example shows that the Match object and the CaptureCollection object returned by the Match.Captures property contain information about the same match. Второй Group объект, который соответствует только захватываемой группы в регулярном выражении, определяет только последние записанные строки, тогда как CaptureCollection объект, возвращенный первой захватываемой группе Group.Captures свойство включает в себя все захваченные подстроки.The second Group object, which corresponds to the only capturing group in the regular expression, identifies only the last captured string, whereas the CaptureCollection object returned by the first capturing group's Group.Captures property includes all captured substrings.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern;  
      string input = "The young, hairy, and tall dog slowly walked across the yard.";
      Match match;

      // Match a word with a pattern that has no capturing groups.
      pattern = @"\b\w+\W{1,2}";
      match = Regex.Match(input, pattern);
      Console.WriteLine("Pattern: " + pattern);
      Console.WriteLine("Match: " + match.Value);
      Console.WriteLine("  Match.Captures: {0}", match.Captures.Count);
      for (int ctr = 0; ctr < match.Captures.Count; ctr++)
         Console.WriteLine("    {0}: '{1}'", ctr, match.Captures[ctr].Value);
      Console.WriteLine("  Match.Groups: {0}", match.Groups.Count);
      for (int groupCtr = 0; groupCtr < match.Groups.Count; groupCtr++)
      {
         Console.WriteLine("    Group {0}: '{1}'", 
                           groupCtr, match.Groups[groupCtr].Value);
         Console.WriteLine("    Group({0}).Captures: {1}", 
                           groupCtr, match.Groups[groupCtr].Captures.Count);
         for (int captureCtr = 0; captureCtr < match.Groups[groupCtr].Captures.Count; captureCtr++)
            Console.WriteLine("      Capture {0}: '{1}'", 
                              captureCtr, 
                              match.Groups[groupCtr].Captures[captureCtr].Value);
      }
      Console.WriteLine("-----\n");

      // Match a sentence with a pattern that has a quantifier that 
      // applies to the entire group.
      pattern = @"(\b\w+\W{1,2})+";
      match = Regex.Match(input, pattern);
      Console.WriteLine("Pattern: " + pattern);
      Console.WriteLine("Match: " + match.Value);
      Console.WriteLine("  Match.Captures: {0}", match.Captures.Count);
      for (int ctr = 0; ctr < match.Captures.Count; ctr++)
         Console.WriteLine("    {0}: '{1}'", ctr, match.Captures[ctr].Value);
      
      Console.WriteLine("  Match.Groups: {0}", match.Groups.Count);
      for (int groupCtr = 0; groupCtr < match.Groups.Count; groupCtr++)
      {
         Console.WriteLine("    Group {0}: '{1}'", groupCtr, match.Groups[groupCtr].Value);
         Console.WriteLine("    Group({0}).Captures: {1}", 
                           groupCtr, match.Groups[groupCtr].Captures.Count);
         for (int captureCtr = 0; captureCtr < match.Groups[groupCtr].Captures.Count; captureCtr++)
            Console.WriteLine("      Capture {0}: '{1}'", captureCtr, match.Groups[groupCtr].Captures[captureCtr].Value);
      }
   }
}
// The example displays the following output:
//    Pattern: \b\w+\W{1,2}
//    Match: The
//      Match.Captures: 1
//        0: 'The '
//      Match.Groups: 1
//        Group 0: 'The '
//        Group(0).Captures: 1
//          Capture 0: 'The '
//    -----
//    
//    Pattern: (\b\w+\W{1,2})+
//    Match: The young, hairy, and tall dog slowly walked across the yard.
//      Match.Captures: 1
//        0: 'The young, hairy, and tall dog slowly walked across the yard.'
//      Match.Groups: 2
//        Group 0: 'The young, hairy, and tall dog slowly walked across the yard.'
//        Group(0).Captures: 1
//          Capture 0: 'The young, hairy, and tall dog slowly walked across the yard.'
//        Group 1: 'yard.'
//        Group(1).Captures: 11
//          Capture 0: 'The '
//          Capture 1: 'young, '
//          Capture 2: 'hairy, '
//          Capture 3: 'and '
//          Capture 4: 'tall '
//          Capture 5: 'dog '
//          Capture 6: 'slowly '
//          Capture 7: 'walked '
//          Capture 8: 'across '
//          Capture 9: 'the '
//          Capture 10: 'yard.'
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String  
      Dim input As String = "The young, hairy, and tall dog slowly walked across the yard."
      Dim match As Match

      ' Match a word with a pattern that has no capturing groups.
      pattern = "\b\w+\W{1,2}"
      match = Regex.Match(input, pattern)
      Console.WriteLine("Pattern: " + pattern)
      Console.WriteLine("Match: " + match.Value)
      Console.WriteLine("  Match.Captures: {0}", match.Captures.Count)
      For ctr As Integer = 0 To match.Captures.Count - 1
         Console.WriteLine("    {0}: '{1}'", ctr, match.Captures(ctr).Value)
      Next
      Console.WriteLine("  Match.Groups: {0}", match.Groups.Count)
      For groupCtr As Integer = 0 To match.Groups.Count - 1
         Console.WriteLine("    Group {0}: '{1}'", groupCtr, match.Groups(groupCtr).Value)
         Console.WriteLine("    Group({0}).Captures: {1}", _
                           groupCtr, match.Groups(groupCtr).Captures.Count)
         For captureCtr As Integer = 0 To match.Groups(groupCtr).Captures.Count - 1
            Console.WriteLine("      Capture {0}: '{1}'", _
                              captureCtr, _
                              match.Groups(groupCtr).Captures(captureCtr).Value)
         Next
      Next
      Console.WriteLine("-----")
      Console.WriteLine()

      ' Match a sentence with a pattern that has a quantifier that 
      ' applies to the entire group.
      pattern = "(\b\w+\W{1,2})+"
      match = Regex.Match(input, pattern)
      Console.WriteLine("Pattern: " + pattern)
      Console.WriteLine("Match: " + match.Value)
      Console.WriteLine("  Match.Captures: {0}", match.Captures.Count)
      For ctr As Integer = 0 To match.Captures.Count - 1
         Console.WriteLine("    {0}: '{1}'", ctr, match.Captures(ctr).Value)
      Next
      Console.WriteLine("  Match.Groups: {0}", match.Groups.Count)
      For groupCtr As Integer = 0 To match.Groups.Count - 1
         Console.WriteLine("    Group {0}: '{1}'", groupCtr, match.Groups(groupCtr).Value)
         Console.WriteLine("    Group({0}).Captures: {1}", _
                           groupCtr, match.Groups(groupCtr).Captures.Count)
         For captureCtr As Integer = 0 To match.Groups(groupCtr).Captures.Count - 1
            Console.WriteLine("      Capture {0}: '{1}'", captureCtr, match.Groups(groupCtr).Captures(captureCtr).Value)
         Next
      Next
   End Sub
End Module
' The example displays the following output:
'    Pattern: \b\w+\W{1,2}
'    Match: The
'      Match.Captures: 1
'        0: 'The '
'      Match.Groups: 1
'        Group 0: 'The '
'        Group(0).Captures: 1
'          Capture 0: 'The '
'    -----
'    
'    Pattern: (\b\w+\W{1,2})+
'    Match: The young, hairy, and tall dog slowly walked across the yard.
'      Match.Captures: 1
'        0: 'The young, hairy, and tall dog slowly walked across the yard.'
'      Match.Groups: 2
'        Group 0: 'The young, hairy, and tall dog slowly walked across the yard.'
'        Group(0).Captures: 1
'          Capture 0: 'The young, hairy, and tall dog slowly walked across the yard.'
'        Group 1: 'yard.'
'        Group(1).Captures: 11
'          Capture 0: 'The '
'          Capture 1: 'young, '
'          Capture 2: 'hairy, '
'          Capture 3: 'and '
'          Capture 4: 'tall '
'          Capture 5: 'dog '
'          Capture 6: 'slowly '
'          Capture 7: 'walked '
'          Capture 8: 'across '
'          Capture 9: 'the '
'          Capture 10: 'yard.'

Комментарии

Неизменяемые коллекции (только для чтения) и не имеет открытого конструктора.The collection is immutable (read-only) and has no public constructor. CaptureCollection Объект содержит один или несколько Capture объектов.The CaptureCollection object contains one or more Capture objects.

Экземпляры CaptureCollection класс возвращаются следующими свойствами:Instances of the CaptureCollection class are returned by the following properties:

  • Свойство Group.Captures.The Group.Captures property. Каждый член коллекции представляет подстроку, записанную захватываемой группой.Each member of the collection represents a substring captured by a capturing group. Если квантификатор не применен к захватываемой группе, CaptureCollection содержит одну Capture объекта, представляющего ту же найдено подстроки как Group объекта.If a quantifier is not applied to a capturing group, the CaptureCollection includes a single Capture object that represents the same captured substring as the Group object. Если к захватываемой группе применяется квантификатор CaptureCollection включает один Capture для каждой записи подстроки и Group объект предоставляет сведения только о последней выделенной подстроке.If a quantifier is applied to a capturing group, the CaptureCollection includes one Capture object for each captured substring, and the Group object provides information only about the last captured substring.

  • Свойство Match.Captures.The Match.Captures property. В этом случае коллекция состоит из одного Capture объект, предоставляющий сведения о соответствии в целом.In this case, the collection consists of a single Capture object that provides information about the match as a whole. То есть CaptureCollection объект предоставляет те же сведения, что Match объекта.That is, the CaptureCollection object provides the same information as the Match object.

Для перебора элементов коллекции, следует использовать конструкцию итерации коллекции предоставляемые ваш язык (такие как foreach в C# и For Each...NextTo iterate through the members of the collection, you should use the collection iteration construct provided by your language (such as foreach in C# and For EachNext в Visual Basic) вместо извлечения перечислитель, который возвращается методом GetEnumerator метод.in Visual Basic) instead of retrieving the enumerator that is returned by the GetEnumerator method.

Свойства

Count Count Count Count

Получает количество подстрок, записанных группой.Gets the number of substrings captured by the group.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Возвращает значение, указывающее на то, доступна ли коллекция только для чтения.Gets a value that indicates whether the collection is read only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Получает значение, указывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).Gets a value that indicates whether access to the collection is synchronized (thread-safe).

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Получает отдельный член коллекции.Gets an individual member of the collection.

SyncRoot SyncRoot SyncRoot SyncRoot

Возвращает объект, который можно использовать для синхронизации доступа к коллекции.Gets an object that can be used to synchronize access to the collection.

Методы

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Копирует все элементы коллекции в данный массив, начиная с данного индекса.Copies all the elements of the collection to the given array beginning at the given index.

CopyTo(Capture[], Int32) CopyTo(Capture[], Int32) CopyTo(Capture[], Int32) CopyTo(Capture[], Int32)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Предоставляет перечислитель, выполняющий итерацию по элементам в коллекции.Provides an enumerator that iterates through the collection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32)

Копирует все элементы коллекции в данный массив, начиная с данного индекса.Copies all the elements of the collection to the given array beginning at the given index.

ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized

Получает значение, указывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).Gets a value that indicates whether access to the collection is synchronized (thread-safe).

ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot

Возвращает объект, который можно использовать для синхронизации доступа к коллекции.Gets an object that can be used to synchronize access to the collection.

ICollection<Capture>.Add(Capture) ICollection<Capture>.Add(Capture) ICollection<Capture>.Add(Capture) ICollection<Capture>.Add(Capture)
ICollection<Capture>.Clear() ICollection<Capture>.Clear() ICollection<Capture>.Clear() ICollection<Capture>.Clear()
ICollection<Capture>.Contains(Capture) ICollection<Capture>.Contains(Capture) ICollection<Capture>.Contains(Capture) ICollection<Capture>.Contains(Capture)
ICollection<Capture>.Remove(Capture) ICollection<Capture>.Remove(Capture) ICollection<Capture>.Remove(Capture) ICollection<Capture>.Remove(Capture)
IEnumerable<Capture>.GetEnumerator() IEnumerable<Capture>.GetEnumerator() IEnumerable<Capture>.GetEnumerator() IEnumerable<Capture>.GetEnumerator()
IList.Add(Object) IList.Add(Object) IList.Add(Object) IList.Add(Object)
IList.Clear() IList.Clear() IList.Clear() IList.Clear()
IList.Contains(Object) IList.Contains(Object) IList.Contains(Object) IList.Contains(Object)
IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object)
IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object)
IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize
IList.Item[Int32] IList.Item[Int32] IList.Item[Int32] IList.Item[Int32]
IList.Remove(Object) IList.Remove(Object) IList.Remove(Object) IList.Remove(Object)
IList.RemoveAt(Int32) IList.RemoveAt(Int32) IList.RemoveAt(Int32) IList.RemoveAt(Int32)
IList<Capture>.IndexOf(Capture) IList<Capture>.IndexOf(Capture) IList<Capture>.IndexOf(Capture) IList<Capture>.IndexOf(Capture)
IList<Capture>.Insert(Int32, Capture) IList<Capture>.Insert(Int32, Capture) IList<Capture>.Insert(Int32, Capture) IList<Capture>.Insert(Int32, Capture)
IList<Capture>.Item[Int32] IList<Capture>.Item[Int32] IList<Capture>.Item[Int32] IList<Capture>.Item[Int32]
IList<Capture>.RemoveAt(Int32) IList<Capture>.RemoveAt(Int32) IList<Capture>.RemoveAt(Int32) IList<Capture>.RemoveAt(Int32)

Extension Methods

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

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

Дополнительно