Udostępnij za pośrednictwem


MatchCollection.Item[Int32] Właściwość

Definicja

Pobiera pojedynczy element członkowski kolekcji.

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

Parametry

i
Int32

Indeksuj do kolekcji Match .

Wartość właściwości

Match

Przechwycony podciąg na pozycji i w kolekcji.

Implementuje

Wyjątki

i wartość jest mniejsza niż 0 lub większa niż lub równa Count.

Wystąpił limit czasu.

Przykłady

Poniższy przykład analizuje pierwsze zdanie Domu Siódemki Nathaniel Hawthorne i zwraca MatchCollection obiekt zawierający wszystkie wyrazy rozpoczynające się wielkimi lub małymi literami "h". Właściwość jest następnie używana do pobierania Item[] każdego wyrazu i wyświetlania go w konsoli.

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

W przykładzie są generowane następujące dane wyjściowe:

Half  
house  
huge  

Uwagi

W języku C# Item[] właściwość jest indeksatorem; nie jest jawnie przywoływana w kodzie, ale umożliwia MatchCollection dostęp do kolekcji tak, jakby była tablicą.

Zazwyczaj poszczególne elementy w MatchCollection obiekcie są dostępne przez ich indeks dopiero po określeniu Count całkowitej liczby elementów w kolekcji z właściwości . Jednak uzyskanie Count dostępu do właściwości powoduje, że aparat wyrażeń regularnych używa bezpośredniej oceny do kompilowania kolekcji jednocześnie. Jest to zazwyczaj droższe niż iterowanie kolekcji przy użyciu GetEnumerator metody, instrukcji języka C# foreach lub instrukcji Visual Basic For Each...Next .

MatchCollection Ponieważ obiekt jest zwykle wypełniany przy użyciu oceny z opóźnieniem, próba przejścia do określonego dopasowania może zgłosić RegexMatchTimeoutException wyjątek. Ten wyjątek można zgłosić, jeśli wartość limitu czasu dla pasujących operacji jest w życie, a próba znalezienia określonego dopasowania przekracza ten interwał limitu czasu.

Dotyczy

Zobacz też