CaptureCollection Classe

Définition

Représente l'ensemble des captures effectuées par un groupe de capture spécifique.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
Héritage
CaptureCollection
Attributs
Implémente

Exemples

L’exemple suivant compare les Capture objets de l' CaptureCollection objet retourné par les Group.Captures propriétés Match.Captures et.The following example compares the Capture objects in the CaptureCollection object returned by the Group.Captures and Match.Captures properties. Il compare Group également Capture des objets aux objets dans le CaptureCollection retourné par la Group.Captures propriété.It also compares Group objects with the Capture objects in the CaptureCollection returned by the Group.Captures property. L’exemple utilise les deux expressions régulières suivantes pour rechercher des correspondances dans une chaîne d’entrée unique:The example uses the following two regular expressions to find matches in a single input string:

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

    Ce modèle d’expression régulière identifie un mot qui se compose d’un ou plusieurs caractères alphabétiques, suivis d’un ou de deux caractères non alphabétiques tels que des espaces blancs ou des signes de ponctuation.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. L’expression régulière n’inclut aucun groupe de capture.The regular expression does not include any capturing groups. La sortie de l' Match exemple montre que l’objet et les CaptureCollection objets retournés par Group.Captures les Match.Captures propriétés et contiennent des informations sur la même correspondance.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})+

    Ce modèle d’expression régulière identifie les mots d’une phrase.This regular expression pattern identifies the words in a sentence. Le modèle définit un groupe de capture unique qui se compose d’un ou plusieurs caractères alphabétiques suivis d’un ou de deux caractères non alphabétiques.The pattern defines a single capturing group that consists of one or more word characters followed by one or two non-word characters. Le modèle d’expression régulière utilise + le quantificateur pour faire correspondre une ou plusieurs occurrences de ce groupe.The regular expression pattern uses the + quantifier to match one or more occurrences of this group. La sortie de cet exemple montre que l' Match objet et l' CaptureCollection objet retourné par la Match.Captures propriété contiennent des informations sur la même correspondance.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. Le deuxième Group objet, qui correspond au seul groupe de capture dans l’expression régulière, identifie uniquement la dernière chaîne capturée, tandis que l' CaptureCollection objet retourné par la propriété Group.Captures du premier groupe de capture comprend tous les sous-chaînes capturées.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.'

Remarques

La collection est immuable (en lecture seule) et n’a pas de constructeur public.The collection is immutable (read-only) and has no public constructor. L' CaptureCollection objet contient un ou plusieurs Capture objets.The CaptureCollection object contains one or more Capture objects.

Les instances de CaptureCollection la classe sont retournées par les propriétés suivantes:Instances of the CaptureCollection class are returned by the following properties:

  • La propriété Group.Captures.The Group.Captures property. Chaque membre de la collection représente une sous-chaîne capturée par un groupe de capture.Each member of the collection represents a substring captured by a capturing group. Si aucun quantificateur n’est appliqué à un groupe de capture, le CaptureCollection comprend un objet Capture unique qui représente la même sous-chaîne capturée Group que l’objet.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. Si un quantificateur est appliqué à un groupe de capture, le CaptureCollection inclut un Capture objet pour chaque sous-chaîne capturée, Group et l’objet fournit des informations uniquement sur la dernière sous-chaîne capturée.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.

  • La propriété Match.Captures.The Match.Captures property. Dans ce cas, la collection se compose d’un Capture seul objet qui fournit des informations sur la correspondance dans son ensemble.In this case, the collection consists of a single Capture object that provides information about the match as a whole. Autrement dit, l' CaptureCollection objet fournit les mêmes informations que l' Match objet.That is, the CaptureCollection object provides the same information as the Match object.

Pour itérer au sein des membres de la collection, vous devez utiliser la construction d’itération de collection fournie par votre langage foreach ( C# par For Eachexemple, dans et...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 dans Visual Basic) au lieu de récupérer l’énumérateur retourné par la GetEnumerator méthode.in Visual Basic) instead of retrieving the enumerator that is returned by the GetEnumerator method.

Propriétés

Count

Obtient le nombre de sous-chaînes capturées par le groupe.Gets the number of substrings captured by the group.

IsReadOnly

Obtient une valeur qui indique si la collection est en lecture seule.Gets a value that indicates whether the collection is read only.

IsSynchronized

Obtient une valeur qui indique si l’accès à la collection est synchronisé (thread-safe).Gets a value that indicates whether access to the collection is synchronized (thread-safe).

Item[Int32]

Obtient un membre individuel de la collection.Gets an individual member of the collection.

SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès à la collection.Gets an object that can be used to synchronize access to the collection.

Méthodes

CopyTo(Array, Int32)

Copie tous les éléments de la collection dans le tableau donné en commençant à l'index spécifié.Copies all the elements of the collection to the given array beginning at the given index.

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

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetEnumerator()

Fournit un énumérateur qui itère au sein de la collection.Provides an enumerator that iterates through the collection.

GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie tous les éléments de la collection dans le tableau donné en commençant à l'index spécifié.Copies all the elements of the collection to the given array beginning at the given index.

ICollection.IsSynchronized

Obtient une valeur qui indique si l’accès à la collection est synchronisé (thread-safe).Gets a value that indicates whether access to the collection is synchronized (thread-safe).

ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès à la collection.Gets an object that can be used to synchronize access to the collection.

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

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

S’applique à

Voir aussi