MatchCollection.Count プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
一致の数を取得します。
public:
property int Count { int get(); };
public int Count { get; }
member this.Count : int
Public ReadOnly Property Count As Integer
プロパティ値
一致の数。
実装
例外
タイムアウトが発生しました。
例
次の例では、 プロパティを Count 使用して、 メソッドの呼び出しで Regex.Matches(String, String) 一致が見つかったかどうかを判断します。 そうでない場合は、一致が見つからなかったことを示します。 それ以外の場合は、一致を列挙し、その値と、検出された入力文字列内の位置を表示します。
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 つ以上の小数点文字と一致します。
注釈
コレクションCountの プロパティの値を取得してオブジェクトのMatchCollection個々のメンバーにアクセスすると、正規表現エンジンは直接評価を使用してコレクションにデータを設定します。 これに対し、メソッドをGetEnumerator呼び出す (または C# の ステートメントと For Each
Visual Basic の ...Next
ステートメントを使用foreach
する) 場合、正規表現エンジンは、遅延評価を使用して、必要に応じて コレクションを設定します。 直接評価は、遅延評価よりもはるかに高価な方法でコレクションを構築できます。
MatchCollectionオブジェクトは通常、遅延評価を使用して設定されるため、コレクションに完全に設定される前にコレクション内の要素の数を決定しようとすると、RegexMatchTimeoutException例外がスローされる可能性があります。 この例外は、一致する操作のタイムアウト値が有効であり、1 つの一致を見つけようとしたときに、そのタイムアウト間隔を超えた場合にスローされる可能性があります。
適用対象
.NET