MatchCollection.Item[Int32] プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクションの個別のメンバーを取得します。
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
の位置にあるキャプチャされた部分文字列。
実装
例外
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スローされる可能性があります。 この例外は、一致操作のタイムアウト値が有効であり、特定の一致を検索する試行がそのタイムアウト間隔を超えた場合にスローされる可能性があります。
適用対象
こちらもご覧ください
.NET