CaptureCollection Classe

Definizione

Rappresenta il set di acquisizioni eseguite da un singolo gruppo di acquisizione.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
Ereditarietà
CaptureCollection
Attributi
Implementazioni

Esempi

Nell' Capture esempio seguente vengono confrontati gli oggetti CaptureCollection nell'oggetto restituito dalle Group.Captures proprietà e. Match.CapturesThe following example compares the Capture objects in the CaptureCollection object returned by the Group.Captures and Match.Captures properties. Vengono inoltre confrontati Group gli oggetti Capture con gli oggetti CaptureCollection Group.Captures nell'oggetto restituito dalla proprietà.It also compares Group objects with the Capture objects in the CaptureCollection returned by the Group.Captures property. Nell'esempio vengono usate le due espressioni regolari seguenti per trovare le corrispondenze in una singola stringa di input:The example uses the following two regular expressions to find matches in a single input string:

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

    Questo criterio di espressione regolare identifica una parola costituita da uno o più caratteri alfanumerici, seguiti da uno o due caratteri non alfanumerici, ad esempio spazi vuoti o punteggiatura.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'espressione regolare non include alcun gruppo di acquisizione.The regular expression does not include any capturing groups. L'output dell' Match esempio mostra che l'oggetto e gli CaptureCollection oggetti restituiti dalle Group.Captures proprietà e Match.Captures contengono informazioni sulla stessa corrispondenza.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})+

    Questo criterio di espressione regolare identifica le parole in una frase.This regular expression pattern identifies the words in a sentence. Il criterio definisce un singolo gruppo di acquisizione costituito da uno o più caratteri alfanumerici seguiti da uno o due caratteri non alfanumerici.The pattern defines a single capturing group that consists of one or more word characters followed by one or two non-word characters. Il criterio di espressione regolare USA + il quantificatore per trovare la corrispondenza con una o più occorrenze di questo gruppo.The regular expression pattern uses the + quantifier to match one or more occurrences of this group. L'output di questo esempio mostra che l' Match oggetto e l' CaptureCollection oggetto restituiti dalla Match.Captures proprietà contengono informazioni sulla stessa corrispondenza.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. Il secondo Group oggetto, che corrisponde al solo gruppo di acquisizione nell'espressione regolare, identifica solo l'ultima stringa acquisita, mentre l' CaptureCollection oggetto restituito dalla Group.Captures proprietà del primo gruppo di acquisizione include tutti i sottostringhe acquisite.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.'

Commenti

La raccolta non è modificabile (sola lettura) e non dispone di un costruttore pubblico.The collection is immutable (read-only) and has no public constructor. L' CaptureCollection oggetto contiene uno o più Capture oggetti.The CaptureCollection object contains one or more Capture objects.

Le istanze della CaptureCollection classe vengono restituite dalle proprietà seguenti:Instances of the CaptureCollection class are returned by the following properties:

  • La proprietà Group.Captures.The Group.Captures property. Ogni membro della raccolta rappresenta una sottostringa acquisita da un gruppo di acquisizione.Each member of the collection represents a substring captured by a capturing group. Se un quantificatore non viene applicato a un gruppo di acquisizione, CaptureCollection include un singolo Capture oggetto che rappresenta la stessa sottostringa Group acquisita dell'oggetto.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. Se un quantificatore viene applicato a un gruppo di acquisizione, CaptureCollection include un Capture oggetto per ogni sottostringa acquisita e Group l'oggetto fornisce informazioni solo sull'ultima sottostringa acquisita.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 proprietà Match.Captures.The Match.Captures property. In questo caso, la raccolta è costituita da Capture un singolo oggetto che fornisce informazioni sulla corrispondenza nel suo insieme.In this case, the collection consists of a single Capture object that provides information about the match as a whole. Ovvero, l' CaptureCollection oggetto fornisce le stesse informazioni Match dell'oggetto.That is, the CaptureCollection object provides the same information as the Match object.

Per scorrere i membri della raccolta, è necessario utilizzare il costrutto di iterazione della raccolta fornito dal linguaggio (ad foreach esempio C# in For Eache...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 in Visual Basic) invece di recuperare l'enumeratore restituito dal GetEnumerator metodo.in Visual Basic) instead of retrieving the enumerator that is returned by the GetEnumerator method.

Proprietà

Count

Ottiene il numero delle sottostringhe acquisite dal gruppo.Gets the number of substrings captured by the group.

IsReadOnly

Ottiene un valore che indica se la raccolta è di sola lettura.Gets a value that indicates whether the collection is read only.

IsSynchronized

Ottiene un valore che indica se l'accesso alla raccolta è sincronizzato (thread-safe).Gets a value that indicates whether access to the collection is synchronized (thread-safe).

Item[Int32]

Ottiene un singolo membro della raccolta.Gets an individual member of the collection.

SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso alla raccolta.Gets an object that can be used to synchronize access to the collection.

Metodi

CopyTo(Array, Int32)

Copia tutti gli elementi della raccolta nella matrice indicata a partire dall'indice specificato.Copies all the elements of the collection to the given array beginning at the given index.

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

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetEnumerator()

Fornisce un enumeratore che scorre la raccolta.Provides an enumerator that iterates through the collection.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

Copia tutti gli elementi della raccolta nella matrice indicata a partire dall'indice specificato.Copies all the elements of the collection to the given array beginning at the given index.

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso alla raccolta è sincronizzato (thread-safe).Gets a value that indicates whether access to the collection is synchronized (thread-safe).

ICollection.SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso alla raccolta.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)

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a

Vedi anche