MatchCollection.Item[Int32] MatchCollection.Item[Int32] MatchCollection.Item[Int32] MatchCollection.Item[Int32] Property


コレクションの個別のメンバーを取得します。Gets an individual member of the collection.

 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


Int32 Int32 Int32 Int32

Match コレクション内のインデックス。Index into the Match collection.


コレクション内の i の位置にあるキャプチャされた部分文字列。The captured substring at position i in the collection.


i が 0 未満、または Count 以上です。i is less than 0 or greater than or equal to Count.

次の例では、解析の Nathaniel Hawthorne の最初の文7 アンの家を返します、MatchCollectionか、大文字または小文字"h"で始まるすべての単語を含むオブジェクト。The following example parses the first sentence of Nathaniel Hawthorne's House of the Seven Gables and returns a MatchCollection object that contains all words that begin with either an uppercase or lowercase "h". Item[Int32]プロパティは、各単語を取得し、それをコンソールに表示し、使用します。The Item[Int32] property is then used to retrieve each word and display it to the 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++)
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
   End Sub
End Module

この例では次の出力が生成されます。The example produces the following output:



C# で、Item[Int32]プロパティは、インデクサーは、コードでは、明示的に参照されていませんが、その、MatchCollection配列の場合と同様にアクセスするコレクション。In C#, the Item[Int32] property is an indexer; it is not explicitly referenced in code, but instead allows the MatchCollection collection to be accessed as if it were an array.

通常、個々 の項目、MatchCollectionからコレクション内の項目の合計数がわかった後にのみ、オブジェクトが、インデックスによってアクセスされる、Countプロパティ。Typically, individual items in the MatchCollection object are accessed by their index only after the total number of items in the collection has been determined from the Count property. ただしへのアクセス、Countプロパティにより直接評価を使用して、一度にすべてのコレクションを構築する正規表現エンジンです。However, accessing the Count property causes the regular expression engine to use direct evaluation to build the collection all at once. これは、使用して、コレクションを反復処理するより通常高価、GetEnumeratorメソッド、c#foreachステートメント、または Visual Basic For Each.Nextステートメント。This is typically more expensive than iterating the collection using the GetEnumerator method, the C# foreach statement, or the Visual Basic For Each...Next statement.

MatchCollectionオブジェクトを作成することは一般的に遅延評価を使用すると、特定の一致に移動しようとしています。 スロー可能性があります、RegexMatchTimeoutException例外。Because the MatchCollection object is generally populated by using lazy evaluation, trying to navigate to a specific match may throw a RegexMatchTimeoutException exception. 照合操作のタイムアウト値が実際を特定の一致を検索しようとするがそのタイムアウト間隔を超えている場合、この例外をスローできます。This exception can be thrown if a time-out value for matching operations is in effect, and the attempt to find a specific match exceeds that time-out interval.