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

Definicja

Pobiera liczbę dopasowań.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

Wartość właściwości

Liczba dopasowań.The number of matches.

Implementuje

Wyjątki

Przykłady

W poniższym przykładzie użyto Count właściwości, aby określić, czy wywołanie Regex.Matches(String, String) metoda znaleziono dopasowań.The following example uses the Count property to determine whether the call to the Regex.Matches(String, String) method found any matches. Jeśli nie, oznacza to, że nie znaleziono żadnych dopasowań.If not, it indicates that no matches were found. W przeciwnym razie dopasowania wylicza i wyświetla ich wartość i pozycja w ciągu wejściowym, w którym zostały znalezione.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

Definicję wzorca wyrażenia regularnego \d+ dopasowuje jeden lub więcej znaków dziesiętnych w ciągu wejściowym.The regular expression pattern \d+ matches one or more decimal characters in an input string.

Uwagi

Uzyskiwanie dostępu do poszczególnych członków MatchCollection obiekt poprzez pobranie wartości kolekcji Count właściwości powoduje, że aparat wyrażeń regularnych do wypełnienia kolekcji przy użyciu bezpośredniego oceny.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 kontrast, wywoływania GetEnumerator — metoda (lub za pomocą foreach instrukcji w języku C# i For Each... Next instrukcji w języku Visual Basic) powoduje, że aparat wyrażeń regularnych do wypełnienia kolekcji na jako potrzebne przy użyciu obliczanie z opóźnieniem.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. Bezpośrednie oceny może być znacznie bardziej kosztowne metody tworzenia kolekcji niż obliczanie z opóźnieniem.Direct evaluation can be a much more expensive method of building the collection than lazy evaluation.

Ponieważ MatchCollection obiektu ogólnie jest wypełniana przy użyciu obliczanie z opóźnieniem, aby ustalić liczbę elementów w kolekcji, zanim została wypełniona z w pełni może zgłaszać RegexMatchTimeoutException wyjątku.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. Ten wyjątek może zostać wygenerowany, jeśli wartość limitu czasu dla operacji dopasowywania jest aktywna, a próba znalezienia pojedyncze dopasowanie przekroczy ten interwał limitu czasu.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.

Dotyczy