Compartilhar via


MatchCollection.Item[Int32] Propriedade

Definição

Obtém um membro individual da coleção.

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 na coleção Match.

Valor da propriedade

Match

A subcadeia de caracteres capturada na posição i da coleção.

Implementações

Exceções

i é menor que 0 ou maior ou igual a Count.

Ocorreu um tempo limite.

Exemplos

O exemplo a seguir analisa a primeira frase da Casa dos Sete Gables de Nathaniel Hawthorne e retorna um MatchCollection objeto que contém todas as palavras que começam com um "h" maiúsculo ou minúsculo. Em Item[] seguida, a propriedade é usada para recuperar cada palavra e exibi-la no 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

O exemplo produz a seguinte saída:

Half  
house  
huge  

Comentários

Em C#, a Item[] propriedade é um indexador; ela não é explicitamente referenciada no código, mas permite que a MatchCollection coleção seja acessada como se fosse uma matriz.

Normalmente, os itens individuais no MatchCollection objeto são acessados por seu índice somente depois que o número total de itens na coleção tiver sido determinado a partir da Count propriedade. No entanto, acessar a Count propriedade faz com que o mecanismo de expressão regular use a avaliação direta para compilar a coleção de uma só vez. Normalmente, isso é mais caro do que iterar a coleção usando o GetEnumerator método, a instrução C# foreach ou a instrução Visual BasicFor Each...Next .

Como o MatchCollection objeto geralmente é preenchido usando uma avaliação lenta, tentar navegar para uma correspondência específica pode gerar uma RegexMatchTimeoutException exceção. Essa exceção poderá ser gerada se um valor de tempo limite para operações correspondentes estiver em vigor e a tentativa de encontrar uma correspondência específica exceder esse intervalo de tempo limite.

Aplica-se a

Confira também