MatchCollection MatchCollection MatchCollection MatchCollection Class

定義

正規表現パターンを入力文字列に繰り返し適用したときに、パターンに一致した一連の対象を表します。Represents the set of successful matches found by iteratively applying a regular expression pattern to the input string.

public ref class MatchCollection : System::Collections::ICollection
[System.Serializable]
public class MatchCollection : System.Collections.ICollection
type MatchCollection = class
    interface ICollection
    interface IEnumerable
Public Class MatchCollection
Implements ICollection
継承
MatchCollectionMatchCollectionMatchCollectionMatchCollection
属性
実装

次の例では、使用、MatchCollectionクラスのセットを調査するMatchインスタンス。The following example illustrates the use of the MatchCollection class to interrogate a set of Match instances.

#using <System.dll>

using namespace System;
using namespace System::Text::RegularExpressions;
int main()
{
   // Define a regular expression for repeated words.
   Regex^ rx = gcnew Regex( "\\b(?<word>\\w+)\\s+(\\k<word>)\\b",static_cast<RegexOptions>(RegexOptions::Compiled | RegexOptions::IgnoreCase) );

   // Define a test string.        
   String^ text = "The the quick brown fox  fox jumps over the lazy dog dog.";

   // Find matches.
   MatchCollection^ matches = rx->Matches( text );

   // Report the number of matches found.
   Console::WriteLine( "{0} matches found.", matches->Count );

   // Report on each match.
   for each (Match^ match in matches)
   {
      String^ word = match->Groups["word"]->Value;
      int index = match->Index;
      Console::WriteLine("{0} repeated at position {1}", word, index);   
   }
}
using System;
using System.Text.RegularExpressions;

public class Test
{

    public static void Main ()
    {

        // Define a regular expression for repeated words.
        Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
          RegexOptions.Compiled | RegexOptions.IgnoreCase);

        // Define a test string.        
        string text = "The the quick brown fox  fox jumps over the lazy dog dog.";
        
        // Find matches.
        MatchCollection matches = rx.Matches(text);

        // Report the number of matches found.
        Console.WriteLine("{0} matches found in:\n   {1}", 
                          matches.Count, 
                          text);

        // Report on each match.
        foreach (Match match in matches)
        {
            GroupCollection groups = match.Groups;
            Console.WriteLine("'{0}' repeated at positions {1} and {2}",  
                              groups["word"].Value, 
                              groups[0].Index, 
                              groups[1].Index);
        }
        
    }
	
}
// The example produces the following output to the console:
//       3 matches found in:
//          The the quick brown fox  fox jumps over the lazy dog dog.
//       'The' repeated at positions 0 and 4
//       'fox' repeated at positions 20 and 25
//       'dog' repeated at positions 50 and 54
Imports System
Imports System.Text.RegularExpressions

Public Module Test

    Public Sub Main()
        ' Define a regular expression for repeated words.
        Dim rx As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
               RegexOptions.Compiled Or RegexOptions.IgnoreCase)

        ' Define a test string.        
        Dim text As String = "The the quick brown fox  fox jumps over the lazy dog dog."
        
        ' Find matches.
        Dim matches As MatchCollection = rx.Matches(text)

        ' Report the number of matches found.
        Console.WriteLine("{0} matches found in:", matches.Count)
        Console.WriteLine("   {0}", text)

        ' Report on each match.
        For Each match As Match In matches
            Dim groups As GroupCollection = match.Groups
            Console.WriteLine("'{0}' repeated at positions {1} and {2}", _ 
                              groups.Item("word").Value, _
                              groups.Item(0).Index, _
                              groups.Item(1).Index)
        Next
    End Sub
End Module
' The example produces the following output to the console:
'       3 matches found in:
'          The the quick brown fox  fox jumps over the lazy dog dog.
'       'The' repeated at positions 0 and 4
'       'fox' repeated at positions 20 and 25
'       'dog' repeated at positions 50 and 54

注釈

コレクションは変更不可 (読み取り専用) をパブリック コンス トラクターを持ちません。The collection is immutable (read-only) and has no public constructor. Regex.Matches メソッドは MatchCollection オブジェクトを返します。The Regex.Matches method returns a MatchCollection object.

コレクションは、0 個以上含まれています。System.Text.RegularExpressions.Matchオブジェクト。The collection contains zero or more System.Text.RegularExpressions.Match objects. いずれかのコレクションは、一致が成功した場合は、System.Text.RegularExpressions.Match入力文字列内で見つかった各一致のオブジェクト。If the match is successful, the collection is populated with one System.Text.RegularExpressions.Match object for each match found in the input string. 一致が成功しなかった場合が含まれていないにはコレクションにはSystem.Text.RegularExpressions.Matchオブジェクト、およびそのCountプロパティは 0 になります。If the match is unsuccessful, the collection contains no System.Text.RegularExpressions.Match objects, and its Count property equals zero.

特定の入力文字列を正規表現パターンを適用するときに、正規表現エンジンを使用して 2 つの手法のいずれかを構築する、MatchCollectionオブジェクト。When applying a regular expression pattern to a particular input string, the regular expression engine uses either of two techniques to build the MatchCollection object:

  • 直接の評価。Direct evaluation.

    MatchCollectionと特定の呼び出しの結果すべてに一致するオブジェクトがすべて一度に設定、Regex.Matchesメソッド。The MatchCollection object is populated all at once, with all matches resulting from a particular call to the Regex.Matches method. この手法が使用されるときに、コレクションのCountプロパティにアクセスします。This technique is used when the collection's Count property is accessed. 通常、コレクションの設定より高価なメソッドし、パフォーマンスに大きく影響する必要があります。It typically is the more expensive method of populating the collection and entails a greater performance hit.

  • レイジー評価します。Lazy evaluation.

    MatchCollection一致-- ごとに、必要に応じて、オブジェクトが設定されます。The MatchCollection object is populated as needed on a match-by-match basis. 正規表現エンジンの呼び出しと同じですが、Regex.Matchメソッド繰り返しと一致した各文字列をコレクションに追加します。It is equivalent to the regular expression engine calling the Regex.Match method repeatedly and adding each match to the collection. コレクションにアクセスする場合、この手法が使用されるそのGetEnumeratorメソッドを使用してアクセスされた場合、または、foreachステートメント (c#) またはFor Each.Nextステートメント (Visual Basic) でします。This technique is used when the collection is accessed through its GetEnumerator method, or when it is accessed using the foreach statement (in C#) or the For Each...Next statement (in Visual Basic).

コレクションのメンバーを反復処理するには、お使いの言語で提供されるコレクションのイテレーション構造を使用する必要があります (などforeach(C#) とFor Each.NextTo iterate through the members of the collection, you should use the collection iteration construct provided by your language (such as foreach in C# and For EachNext Visual basic) によって返される列挙子を取得する代わりに、GetEnumeratorメソッド。in Visual Basic) instead of retrieving the enumerator that is returned by the GetEnumerator method.

プロパティ

Count Count Count Count

一致の数を取得します。Gets the number of matches.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

コレクションが読み取り専用かどうかを示す値を取得します。Gets a value that indicates whether the collection is read only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

コレクションへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。Gets a value indicating whether access to the collection is synchronized (thread-safe).

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

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

SyncRoot SyncRoot SyncRoot SyncRoot

コレクションへのアクセスを同期するために使用できるオブジェクトを取得します。Gets an object that can be used to synchronize access to the collection.

メソッド

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

指定したインデックスを開始位置として、指定した配列にコレクションのすべての要素をコピーします。Copies all the elements of the collection to the given array starting at the given index.

CopyTo(Match[], Int32) CopyTo(Match[], Int32) CopyTo(Match[], Int32) CopyTo(Match[], Int32)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

コレクションを反復処理する列挙子を提供します。Provides an enumerator that iterates through the collection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32)

指定したインデックスを開始位置として、指定した配列にコレクションのすべての要素をコピーします。Copies all the elements of the collection to the specified array starting at the specified index.

ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized

コレクションへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。Gets a value that indicates whether access to the collection is synchronized (thread-safe).

ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot

コレクションへのアクセスを同期するために使用できるオブジェクトを取得します。Gets an object that can be used to synchronize access to the collection.

ICollection<Match>.Add(Match) ICollection<Match>.Add(Match) ICollection<Match>.Add(Match) ICollection<Match>.Add(Match)
ICollection<Match>.Clear() ICollection<Match>.Clear() ICollection<Match>.Clear() ICollection<Match>.Clear()
ICollection<Match>.Contains(Match) ICollection<Match>.Contains(Match) ICollection<Match>.Contains(Match) ICollection<Match>.Contains(Match)
ICollection<Match>.Remove(Match) ICollection<Match>.Remove(Match) ICollection<Match>.Remove(Match) ICollection<Match>.Remove(Match)
IEnumerable<Match>.GetEnumerator() IEnumerable<Match>.GetEnumerator() IEnumerable<Match>.GetEnumerator() IEnumerable<Match>.GetEnumerator()
IList.Add(Object) IList.Add(Object) IList.Add(Object) IList.Add(Object)
IList.Clear() IList.Clear() IList.Clear() IList.Clear()
IList.Contains(Object) IList.Contains(Object) IList.Contains(Object) IList.Contains(Object)
IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object)
IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object)
IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize
IList.Item[Int32] IList.Item[Int32] IList.Item[Int32] IList.Item[Int32]
IList.Remove(Object) IList.Remove(Object) IList.Remove(Object) IList.Remove(Object)
IList.RemoveAt(Int32) IList.RemoveAt(Int32) IList.RemoveAt(Int32) IList.RemoveAt(Int32)
IList<Match>.IndexOf(Match) IList<Match>.IndexOf(Match) IList<Match>.IndexOf(Match) IList<Match>.IndexOf(Match)
IList<Match>.Insert(Int32, Match) IList<Match>.Insert(Int32, Match) IList<Match>.Insert(Int32, Match) IList<Match>.Insert(Int32, Match)
IList<Match>.Item[Int32] IList<Match>.Item[Int32] IList<Match>.Item[Int32] IList<Match>.Item[Int32]
IList<Match>.RemoveAt(Int32) IList<Match>.RemoveAt(Int32) IList<Match>.RemoveAt(Int32) IList<Match>.RemoveAt(Int32)

Extension Methods

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

適用対象