MatchCollection.Count MatchCollection.Count MatchCollection.Count MatchCollection.Count Property

定義

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

public:
 property int Count { int get(); };
public int Count { get; }
member this.Count : int
Public ReadOnly Property Count As Integer

プロパティ値

一致の数。The number of matches.

実装

例外

次の例では、Countプロパティのかどうかを呼び出し、Regex.Matches(String, String)メソッドには、一致した結果が見つかりませんでした。The following example uses the Count property to determine whether the call to the Regex.Matches(String, String) method found any matches. それ以外の場合は、一致が見つからなかったことを示します。If not, it indicates that no matches were found. それ以外の場合、一致項目を列挙し、その値が見つかりましたが、入力文字列内の位置が表示されます。Otherwise, it enumerates the matches and displays their value and the position in the input string at which they were found.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\d+";
      string[] inputs = { "This sentence contains no numbers.",
                          "123 What do I see?",
                          "2468 369 48 5" };
      foreach (var input in inputs) {
         MatchCollection matches = Regex.Matches(input, pattern);
         Console.WriteLine("Input: {0}", input);
         if (matches.Count == 0)
            Console.WriteLine("   No matches");
         else
            foreach (Match m in matches)
               Console.WriteLine("   {0} at index {1}", m.Value, m.Index);

         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//       Input: This sentence contains no numbers.
//          No matches
//
//       Input: 123 What do I see?
//          123 at index 0
//
//       Input: 2468 369 48 5
//          2468 at index 0
//          369 at index 5
//          48 at index 9
//          5 at index 12
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\d+"
      Dim inputs() As String = { "This sentence contains no numbers.",
                                 "123 What do I see?",
                                 "2468 369 48 5" }
      For Each inputStr In inputs
         Dim matches As MatchCollection = Regex.Matches(inputStr, pattern)
         Console.WriteLine("Input: {0}", inputStr)
         If matches.Count = 0
            Console.WriteLine("   No matches")
         Else
            For Each m As Match In matches
               Console.WriteLine("   {0} at index {1}", m.Value, m.Index)
            Next
         End If
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'       Input: This sentence contains no numbers.
'       No matches
'
'       Input: 123 What do I see?
'       123 at index 0
'
'       Input: 2468 369 48 5
'       2468 at index 0
'       369 at index 5
'       48 at index 9
'       5 at index 12

正規表現パターン\d+入力文字列内の 1 つまたは複数の 10 進数文字と一致します。The regular expression pattern \d+ matches one or more decimal characters in an input string.

注釈

個々 のメンバーへのアクセス、MatchCollectionオブジェクトのコレクションの値を取得してCountプロパティにより、正規表現エンジンを直接評価を使用して、コレクションを設定します。Accessing individual members of the MatchCollection object by retrieving the value of the collection's Count property causes the regular expression engine to populate the collection using direct evaluation. ln コントラスト、通話、GetEnumeratorメソッド (またはを使用して、 foreach (C#) ステートメント、 For Each.Next Visual Basic でのステートメント) によりコレクションとして、必要に応じて遅延評価を使用して正規表現エンジンを設定します。ln contrast, calling the GetEnumerator method (or using the foreach statement in C# and the For Each...Next statement in Visual Basic) causes the regular expression engine to populate the collection on an as needed basis using lazy evaluation. 直接評価は、遅延評価でコレクションを作成するのより高価なメソッドを指定できます。Direct evaluation can be a much more expensive method of building the collection than lazy evaluation.

MatchCollectionスローする可能性が完全に設定する前に、コレクション内の要素の数を判別するため、遅延評価を使用してオブジェクトを作成して一般に、RegexMatchTimeoutException例外。Because the MatchCollection object is generally populated by using lazy evaluation, trying to determine the number of elements in the collection before it has been fully populated 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 single match exceeds that time-out interval.

適用対象