Partager via


MatchCollection.Item[Int32] Propriété

Définition

Obtient un membre de la 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.

Valeur de propriété

Sous-chaîne capturée à la position i dans la collection.

Implémente

Exceptions

i est inférieur à 0 ou supérieur ou égal à Count.

Un délai d’attente a expiré.

Exemples

L’exemple suivant analyse la première phrase de La Maison des sept pignons de Nathaniel Hawthorne et retourne un MatchCollection objet qui contient tous les mots commençant par un « h » majuscule ou minuscule. La Item[] propriété est ensuite utilisée pour récupérer chaque mot et l’afficher dans la 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 :

Half
house
huge

Remarques

En C#, la Item[] propriété est un indexeur ; elle n’est pas explicitement référencée dans le code, mais permet d’accéder à la MatchCollection collection comme s’il s’agissait d’un tableau.

En règle générale, les éléments individuels de l’objet MatchCollection sont accessibles par leur index uniquement une fois que le nombre total d’éléments de la collection a été déterminé à partir de la Count propriété . Toutefois, l’accès à la Count propriété oblige le moteur d’expression régulière à utiliser l’évaluation directe pour générer la collection en même temps. Cela est généralement plus coûteux que l’itération de la collection à l’aide de la GetEnumerator méthode, de l’instruction C# foreach ou de l’instruction Visual Basic For Each...Next .

Étant donné que l’objet MatchCollection est généralement rempli à l’aide de l’évaluation différée, la tentative d’accès à une correspondance spécifique peut lever une RegexMatchTimeoutException exception. Cette exception peut être levée si une valeur de délai d’attente pour les opérations de correspondance est en vigueur et que la tentative de recherche d’une correspondance spécifique dépasse cet intervalle de délai d’attente.

S’applique à

Voir aussi