Comparteix a través de


MatchCollection.Item[Int32] Propiedad

Definición

Obtiene un miembro individual de la colección.

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

Parámetros

i
Int32

Índice de la colección Match.

Valor de propiedad

Match

Subcadena capturada en la posición i de la colección.

Implementaciones

Excepciones

i es menor que 0, o mayor o igual a Count.

Se agotó el tiempo de espera.

Ejemplos

En el ejemplo siguiente se analiza la primera frase de la Casa de Nathaniel Hawthorne de los Siete Gables y se devuelve un MatchCollection objeto que contiene todas las palabras que comienzan por una letra mayúscula o minúscula "h". A Item[] continuación, la propiedad se usa para recuperar cada palabra y mostrarla en la consola.

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

El ejemplo genera el siguiente resultado:

Half  
house  
huge  

Comentarios

En C#, la Item[] propiedad es un indexador; no se hace referencia explícitamente en el código, sino que permite tener acceso a la MatchCollection colección como si fuera una matriz.

Normalmente, solo se obtiene acceso a los elementos individuales del MatchCollection objeto por su índice después de determinar el número total de elementos de la colección a partir de la Count propiedad . Sin embargo, el acceso a la Count propiedad hace que el motor de expresiones regulares use la evaluación directa para compilar la colección a la vez. Normalmente, esto es más caro que iterar la colección mediante el GetEnumerator método , la instrucción de C# foreach o la instrucción Visual Basic For Each...Next .

Dado que el MatchCollection objeto se rellena normalmente mediante la evaluación diferida, intentar navegar a una coincidencia específica puede producir una RegexMatchTimeoutException excepción. Esta excepción se puede producir si un valor de tiempo de espera para las operaciones coincidentes está en vigor y el intento de encontrar una coincidencia específica supera ese intervalo de tiempo de espera.

Se aplica a

Consulte también