MatchCollection.Item[Int32] Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
Valor da propriedade
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.