MatchCollection.Item[Int32] Propriété

Définition

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

public:
 virtual property System::Text::RegularExpressions::Match ^ default[int] { System::Text::RegularExpressions::Match ^ get(int i); };
public virtual System.Text.RegularExpressions.Match this[int i] { get; }
member this.Item(int) : System.Text.RegularExpressions.Match
Default Public Overridable ReadOnly Property Item(i As Integer) As Match

Paramètres

i
Int32

Index dans la collection Match.Index into the Match collection.

Valeur de propriété

Sous-chaîne capturée à la position i dans la collection.The captured substring at position i in the collection.

Exceptions

i est inférieur à 0 ou supérieur ou égal à Count.i is less than 0 or greater than or equal to Count.

Un délai d’attente a expiré.A time-out occurred.

Exemples

L’exemple suivant analyse la première phrase de la maison de Nathaniel Hawthorne des sept Gables et retourne un MatchCollection objet qui contient tous les mots commençant par un «h» majuscule ou minuscule.The following example parses the first sentence of Nathaniel Hawthorne's House of the Seven Gables and returns a MatchCollection object that contains all words that begin with either an uppercase or lowercase "h". La Item[Int32] propriété est ensuite utilisée pour récupérer chaque mot et l’afficher dans la console.The Item[Int32] property is then used to retrieve each word and display it to the console.

using System;
using System.Text.RegularExpressions;

public class Class1
{
   public static void Main()
   {   
      string sentence = "Half-way down a by-street of one of our New England towns, stands a rusty wooden " +
                         "house, with seven acutely peaked gables, facing towards various points of the compass, " + 
                         "and a huge, clustered chimney in the midst.";
      string pattern = @"\b[hH]\w*\b"; 
      MatchCollection matches = Regex.Matches(sentence, pattern);
      for (int ctr=0; ctr < matches.Count; ctr++)
      {
         Console.WriteLine(matches[ctr].Value);   
      }   
   }
}
Option Strict On

Imports System.Text.RegularExpressions

Module TestMatches
   Public Sub Main()
      Dim pattern As String = "\b[hH]\w*\b"
      Dim sentence As String
      sentence = "Half-way down a by-street of one of our New England towns, stands a rusty wooden " & _
                 "house, with seven acutely peaked gables, facing towards various points of the compass, " & _ 
                 "and a huge, clustered chimney in the midst."
      Dim matches As MatchCollection = Regex.Matches(sentence, pattern)
      For ctr As Integer = 0 To Matches.Count - 1
         Console.WriteLine(matches.Item(ctr).Value)
      Next           
   End Sub
End Module

L'exemple produit la sortie suivante :The example produces the following output:

Half  
house  
huge  

Remarques

Dans C#, la Item[Int32] propriété est un indexeur; elle n’est pas explicitement référencée dans le code, mais elle MatchCollection permet à la collection d’être accessible comme s’il s’agissait d’un tableau.In C#, the Item[Int32] property is an indexer; it is not explicitly referenced in code, but instead allows the MatchCollection collection to be accessed as if it were an array.

En général, les éléments individuels MatchCollection de l’objet sont accessibles par leur index uniquement après que le nombre total d’éléments de la collection a été Count déterminé à partir de la propriété.Typically, individual items in the MatchCollection object are accessed by their index only after the total number of items in the collection has been determined from the Count property. Toutefois, l’accès à Count la propriété amène le moteur d’expression régulière à utiliser l’évaluation directe pour générer la collection en une seule fois.However, accessing the Count property causes the regular expression engine to use direct evaluation to build the collection all at once. Cela est généralement plus coûteux que l’itération de la collection GetEnumerator à l’aide C# foreach de la méthode, de For Eachl’instruction ou de la Visual Basic... Next instruction.This is typically more expensive than iterating the collection using the GetEnumerator method, the C# foreach statement, or the Visual Basic For Each...Next statement.

Étant donné MatchCollection que l’objet est généralement renseigné à l’aide de l’évaluation différée, la tentative d’accès RegexMatchTimeoutException à une correspondance spécifique peut lever une exception.Because the MatchCollection object is generally populated by using lazy evaluation, trying to navigate to a specific match may throw a RegexMatchTimeoutException exception. Cette exception peut être levée si une valeur de délai d’attente pour les opérations de correspondance est activée et si la tentative de recherche d’une correspondance spécifique dépasse cet intervalle de délai d’attente.This exception can be thrown if a time-out value for matching operations is in effect, and the attempt to find a specific match exceeds that time-out interval.

S’applique à

Voir aussi