MatchCollection.Item[Int32] Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft ein einzelnes Element der Auflistung ab.
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
Parameter
Eigenschaftswert
Die erfasste Teilzeichenfolge an position i in der Auflistung.
Implementiert
Ausnahmen
i ist kleiner als 0 oder größer als oder gleich Count.
Ein Timeout ist aufgetreten.
Beispiele
Im folgenden Beispiel wird der erste Satz des House of the Seven Gables analysiert und ein MatchCollection Objekt zurückgegeben, das alle Wörter enthält, die mit einem Groß- oder Kleinbuchstaben "h" beginnen. Die Item[] Eigenschaft wird dann verwendet, um jedes Wort abzurufen und in der Konsole anzuzeigen.
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
Das Beispiel erzeugt die folgende Ausgabe:
Half
house
huge
Hinweise
In C# ist die Item[] Eigenschaft ein Indexer. Sie wird nicht explizit im Code referenziert, sondern ermöglicht den Zugriff auf die MatchCollection Auflistung so, als wäre sie ein Array.
Auf einzelne Elemente im Objekt wird in der MatchCollection Regel erst zugegriffen, nachdem die Gesamtanzahl der Elemente in der Auflistung anhand der Count Eigenschaft ermittelt wurde. Der Zugriff auf die Count Eigenschaft bewirkt jedoch, dass das Modul für reguläre Ausdrücke die direkte Auswertung verwendet, um die Auflistung auf einmal zu erstellen. Dies ist in der Regel teurer als das Durchlaufen der Auflistung mithilfe der GetEnumerator Methode, der C# foreach -Anweisung oder der Visual Basic For Each...Next -Anweisung.
Da das Objekt in der MatchCollection Regel mit einer faulen Auswertung aufgefüllt wird, kann der Versuch, zu einer bestimmten Übereinstimmung zu navigieren, eine RegexMatchTimeoutException Ausnahme auslösen. Diese Ausnahme kann ausgelöst werden, wenn ein Timeoutwert für Abgleichsvorgänge wirksam ist und der Versuch, eine bestimmte Übereinstimmung zu finden, dieses Timeoutintervall überschreitet.