次の方法で共有


MatchCollection.Item[Int32] プロパティ

定義

コレクションの個別のメンバーを取得します。

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

パラメーター

i
Int32

Match コレクション内のインデックス。

プロパティ値

コレクション内の i の位置にあるキャプチャされた部分文字列。

実装

例外

i が 0 未満、または Count 以上です。

タイムアウトが発生しました。

次の例では、ナサニエル・ホーソンの 七つのゲーブルの家の最初の 文を解析し、大文字または小文字の "h" で始まるすべての単語を含む オブジェクトを返 MatchCollection します。 Item[]その後、 プロパティを使用して各単語を取得し、コンソールに表示します。

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

この例では次の出力が生成されます。

Half
house
huge

注釈

C# では、 Item[] プロパティはインデクサーであり、コード内で明示的に参照されるのではなく、配列のようにコレクションにアクセスできるようにします MatchCollection

通常、オブジェクト内の個々の MatchCollection 項目は、コレクション内の項目の合計数が プロパティから決定された後にのみ、インデックスによって Count アクセスされます。 ただし、 プロパティに Count アクセスすると、正規表現エンジンは直接評価を使用してコレクションを一度にビルドします。 これは通常、 メソッド、C# foreach ステートメント、または Visual Basic For Each...Next ステートメントを使用してGetEnumeratorコレクションを反復処理するよりもコストがかかります。

MatchCollectionオブジェクトは通常、遅延評価を使用して設定されるため、特定の一致に移動しようとすると例外がRegexMatchTimeoutExceptionスローされる可能性があります。 この例外は、一致操作のタイムアウト値が有効であり、特定の一致を検索する試行がそのタイムアウト間隔を超えた場合にスローされる可能性があります。

適用対象

こちらもご覧ください