Regex.Matches メソッド

定義

入力文字列内で正規表現と一致する対象をすべて検索し、見つかった対象をすべて返します。

オーバーロード

Matches(String)

指定した入力文字列内で、正規表現と一致する対象をすべて検索します。

Matches(String, Int32)

入力文字列内の指定した開始位置から検索を開始した場合に、その指定入力文字列内で正規表現と一致する対象をすべて検索します。

Matches(String, String)

指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。

Matches(String, String, RegexOptions)

指定した一致オプションを使用して、指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。

Matches(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した入力文字列内で、指定した正規表現に一致するすべての箇所を検索します。

Matches(String)

指定した入力文字列内で、正規表現と一致する対象をすべて検索します。

public:
 System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input);
public System.Text.RegularExpressions.MatchCollection Matches (string input);
member this.Matches : string -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String) As MatchCollection

パラメーター

input
String

一致する対象を検索する文字列。

戻り値

MatchCollection

検索によって見つかった Match オブジェクトのコレクション。 一致が見つからない場合は、空のコレクション オブジェクトが返されます。

例外

inputnullです。

次の例では、 Matches(String) メソッドを使用して、文の末尾が "es" の単語を識別します。

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      Regex rgx = new Regex(pattern);
      string sentence = "Who writes these notes?";
      
      foreach (Match match in rgx.Matches(sentence))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'writes' at position 4
//       Found 'notes' at position 17
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim rgx As New Regex(pattern)
      Dim sentence As String = "Who writes these notes?"
      
      For Each match As Match In rgx.Matches(sentence)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'writes' at position 4
'       Found 'notes' at position 17

正規表現パターン \b\w+es\b は、次の表に示すように定義されています。

パターン 説明
\b ワード境界から照合を開始します。
\w+ 1 つ以上の単語文字に一致します。
es リテラル文字列 "es" と一致します。
\b ワード境界で照合を終了します。

注釈

Matches(String)メソッドはメソッドに似ていますが、 Match(String) 単一の一致ではなく、入力文字列内で見つかったすべての一致に関する情報を返す点が異なります。 これは、次のコードと同じです。

Match match = regex.Match(input);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = regex.Match(input)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

コレクションには、一致するもののみが含まれ、最初の一致しない位置で終了します。

メソッドが検索する正規表現パターン Matches(String) は、クラスコンストラクターのいずれかを呼び出すことによって定義され Regex ます。 正規表現パターンを形成できる要素の詳細については、「 正規表現言語-クイックリファレンス」を参照してください。

メソッドは、 Matches レイジー評価を使用して、返されたオブジェクトを設定し MatchCollection ます。 や などのこのコレクションのメンバーにアクセスすると、コレクションが直ちに MatchCollection.Count MatchCollection.CopyTo 設定されます。 遅延評価を利用するには、 の C# や ... などのコンストラクトを使用してコレクションを反復 foreach For Each Next 処理Visual Basic。

遅延評価のため、 メソッドを呼び出 Matches(String) しても例外はスロー RegexMatchTimeoutException しません。 ただし、 プロパティが でなく、一致する操作がタイム アウト間隔を超えた場合、このメソッドによって返されるオブジェクトに対して操作が実行された場合、例外 MatchCollection MatchTimeout Regex.InfiniteMatchTimeout がスローされます。

こちらもご覧ください

適用対象

Matches(String, Int32)

入力文字列内の指定した開始位置から検索を開始した場合に、その指定入力文字列内で正規表現と一致する対象をすべて検索します。

public:
 System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, int startat);
public System.Text.RegularExpressions.MatchCollection Matches (string input, int startat);
member this.Matches : string * int -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String, startat As Integer) As MatchCollection

パラメーター

input
String

一致する対象を検索する文字列。

startat
Int32

入力文字列内の検索を開始する文字位置。

戻り値

MatchCollection

検索によって見つかった Match オブジェクトのコレクション。 一致が見つからない場合は、空のコレクション オブジェクトが返されます。

例外

inputnullです。

startat が 0 未満か、input の長さを超えています。

次の例では、 メソッドを使用して、"es" で終わる文の最初の単語を検索し、 メソッドを呼び出して、"es" で終わる追加の単語を Match(String) Matches(String, Int32) 識別します。

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      Regex rgx = new Regex(pattern);
      string sentence = "Who writes these notes and uses our paper?";
      
      // Get the first match.
      Match match = rgx.Match(sentence);
      if (match.Success) {
         Console.WriteLine("Found first 'es' in '{0}' at position {1}", 
                           match.Value, match.Index);
         // Get any additional matches.
         foreach (Match m in rgx.Matches(sentence, match.Index + match.Length))
            Console.WriteLine("Also found '{0}' at position {1}", 
                              m.Value, m.Index);
      }   
   }
}
// The example displays the following output:
//       Found first 'es' in 'writes' at position 4
//       Also found 'notes' at position 17
//       Also found 'uses' at position 27
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim rgx As New Regex(pattern)
      Dim sentence As String = "Who writes these notes and uses our paper?"
      
      ' Get the first match.
      Dim match As Match = rgx.Match(sentence)
      If match.Success Then
         Console.WriteLine("Found first 'es' in '{0}' at position {1}", _
                           match.Value, match.Index)
         ' Get any additional matches.
         For Each match In rgx.Matches(sentence, match.Index + match.Length)
            Console.WriteLine("Also found '{0}' at position {1}", _
                              match.Value, match.Index)
         Next
      End If   
   End Sub
End Module
' The example displays the following output:
'       Found first 'es' in 'writes' at position 4
'       Also found 'notes' at position 17
'       Also found 'uses' at position 27

正規表現パターン \b\w+es\b は、次の表に示すように定義されています。

パターン 説明
\b ワード境界から照合を開始します。
\w+ 1 つ以上の単語文字に一致します。
es リテラル文字列 "es" と一致します。
\b ワード境界で照合を終了します。

注釈

メソッドは メソッドに似ていますが、1 つの一致ではなく、入力文字列で見つかったすべての一致に関する情報 Matches(String, Int32) Match(String, Int32) を返す点が除きます。 これは、次のコードと同じです。

Match match = regex.Match(input, startAt);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = regex.Match(input, startAt)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

メソッドが検索する正規表現パターンは、クラス コンストラクターの 1 つの呼び出 Matches(String, Int32)Regex によって定義されます。 正規表現パターンを形成できる要素の詳細については、「正規表現言語 - クイック リファレンス」 を参照してください

メソッド Matches は、遅延評価を使用して、返されたオブジェクトを設定 MatchCollection します。 や などのこのコレクションのメンバーにアクセスすると、コレクションが直ちに MatchCollection.Count MatchCollection.CopyTo 設定されます。 遅延評価を利用するには、 の C# や ... などのコンストラクトを使用してコレクションを反復 foreach For Each Next 処理Visual Basic。

遅延評価のため、 メソッドを呼び出 Matches(String, Int32) しても例外はスロー RegexMatchTimeoutException しません。 ただし、 プロパティが でなく、一致する操作がタイム アウト間隔を超えた場合、このメソッドによって返されるオブジェクトに対して操作が実行された場合、例外 MatchCollection MatchTimeout Regex.InfiniteMatchTimeout がスローされます。

こちらもご覧ください

適用対象

Matches(String, String)

指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。

public:
 static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern);
static member Matches : string * string -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String) As MatchCollection

パラメーター

input
String

一致する対象を検索する文字列。

pattern
String

一致させる正規表現パターン。

戻り値

MatchCollection

検索によって見つかった Match オブジェクトのコレクション。 一致が見つからない場合は、空のコレクション オブジェクトが返されます。

例外

正規表現の解析エラーが発生しました。

input または patternnull です。

次の例では、 Matches(String, String) メソッドを使用して、文の中で "es" で終わる単語を識別します。

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "Who writes these notes?";
      
      foreach (Match match in Regex.Matches(sentence, pattern))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'writes' at position 4
//       Found 'notes' at position 17
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "Who writes these notes?"
      For Each match As Match In Regex.Matches(sentence, pattern)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'writes' at position 4
'       Found 'notes' at position 17

正規表現パターン \b\w+es\b は、次の表に示すように定義されています。

パターン 説明
\b ワード境界から照合を開始します。
\w+ 1 つ以上の単語文字に一致します。
es リテラル文字列 "es" と一致します。
\b ワード境界で照合を終了します。

注釈

メソッドは メソッドに似ていますが、1 つの一致ではなく、入力文字列で見つかったすべての一致に関する情報 Matches(String, String) Match(String, String) を返す点が除きます。 これは、次のコードと同じです。

Match match = Regex.Match(input, pattern);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

静的メソッドは、指定した正規表現パターンを使用して オブジェクトを構築し、インスタンス メソッド を呼び Matches Regex 出すのと同じです Matches

パラメーター pattern は、一致する文字列をシンボル的に記述する正規表現言語要素で構成されます。 正規表現の詳細については、「正規表現と正規表現.NET Frameworkのクイック リファレンス」を参照してください

メソッド Matches は、遅延評価を使用して、返されたオブジェクトを設定 MatchCollection します。 や などのこのコレクションのメンバーにアクセスすると、コレクションが直ちに MatchCollection.Count MatchCollection.CopyTo 設定されます。 遅延評価を利用するには、 の C# や ... などのコンストラクトを使用してコレクションを反復 foreach For Each Next 処理Visual Basic。

遅延評価のため、 メソッドを呼び出 Matches(String, String) しても例外はスロー RegexMatchTimeoutException しません。 ただし、このメソッドによって返されるオブジェクトに対して操作が実行された場合、現在のアプリケーション ドメインの "REGEX_DEFAULT_MATCH_TIMEOUT" プロパティによって定義され、一致する操作がこのタイム アウト間隔を超えた場合、例外がスローされます。 MatchCollection

注意 (呼び出し元)

このメソッドは、呼び出されたアプリケーション ドメインの既定のタイム アウト値と等しい間隔の後に、タイム アウトします。 アプリケーション ドメインに対してタイム アウト値が定義されていない場合は、メソッドのタイミングを妨げる値 である InfiniteMatchTimeout が使用されます。 複数のパターンの一致を取得するために推奨される静的メソッドは です。これにより、タイム アウト間隔 Matches(String, String, RegexOptions, TimeSpan) を指定できます。

こちらもご覧ください

適用対象

Matches(String, String, RegexOptions)

指定した一致オプションを使用して、指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。

public:
 static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions) As MatchCollection

パラメーター

input
String

一致する対象を検索する文字列。

pattern
String

一致させる正規表現パターン。

options
RegexOptions

一致オプションを指定する列挙値のビットごとの組み合わせ。

戻り値

MatchCollection

検索によって見つかった Match オブジェクトのコレクション。 一致が見つからない場合は、空のコレクション オブジェクトが返されます。

例外

正規表現の解析エラーが発生しました。

input または patternnull です。

options は、RegexOptions 値のビットごとの正しい組み合わせではありません。

次の例では、 メソッドを呼び出して、文の中で Matches(String, String) "es" で終わる単語を識別し、 メソッドを呼び出して、パターンと入力文字列の大文字と小文字を区別しない比較を実行します。 Matches(String, String, RegexOptions) 出力に示すように、2 つのメソッドは異なる結果を返します。

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "NOTES: Any notes or comments are optional.";
      
      // Call Matches method without specifying any options.
      foreach (Match match in Regex.Matches(sentence, pattern))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
      Console.WriteLine();

      // Call Matches method for case-insensitive matching.
      foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'notes' at position 11
//       
//       Found 'NOTES' at position 0
//       Found 'notes' at position 11
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "NOTES: Any notes or comments are optional."
      
      ' Call Matches method without specifying any options.
      For Each match As Match In Regex.Matches(sentence, pattern)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
      Console.WriteLine()
      
      ' Call Matches method for case-insensitive matching.
      For Each match As Match In Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'notes' at position 11
'       
'       Found 'NOTES' at position 0
'       Found 'notes' at position 11

正規表現パターン \b\w+es\b は、次の表に示すように定義されています。

パターン 説明
\b ワード境界から照合を開始します。
\w+ 1 つ以上の単語文字に一致します。
es リテラル文字列 "es" と一致します。
\b ワード境界で照合を終了します。

注釈

メソッドは メソッドに似ていますが、1 つの一致ではなく、入力文字列で見つかったすべての一致に関する情報 Matches(String, String, RegexOptions) Match(String, String, RegexOptions) を返す点が除きます。 これは、次のコードと同じです。

Match match = Regex.Match(input, pattern, options);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern, options)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

静的メソッドは、指定した正規表現パターンを使用して オブジェクトを構築し、インスタンス メソッド を呼び Matches Regex 出すのと同じです Matches

パラメーター pattern は、一致する文字列をシンボル的に記述する正規表現言語要素で構成されます。 正規表現の詳細については、「正規表現と正規表現.NET Frameworkのクイック リファレンス」を参照してください

メソッド Matches は、遅延評価を使用して、返されたオブジェクトを設定 MatchCollection します。 や などのこのコレクションのメンバーにアクセスすると、コレクションが直ちに MatchCollection.Count MatchCollection.CopyTo 設定されます。 遅延評価を利用するには、 の C# や ... などのコンストラクトを使用してコレクションを反復 foreach For Each Next 処理Visual Basic。

遅延評価のため、 メソッドを呼び出 Matches(String, String) しても例外はスロー RegexMatchTimeoutException しません。 ただし、このメソッドによって返されるオブジェクトに対して操作が実行された場合、現在のアプリケーション ドメインの "REGEX_DEFAULT_MATCH_TIMEOUT" プロパティによって定義され、一致する操作がこのタイム アウト間隔を超えた場合、例外がスローされます。 MatchCollection

注意 (呼び出し元)

このメソッドは、呼び出されたアプリケーション ドメインの既定のタイム アウト値と等しい間隔の後に、タイム アウトします。 アプリケーション ドメインに対してタイム アウト値が定義されていない場合は、メソッドのタイミングを妨げる値 である InfiniteMatchTimeout が使用されます。 複数のパターンの一致を取得するために推奨される静的メソッドは です。これにより、タイム アウト間隔 Matches(String, String, RegexOptions, TimeSpan) を設定できます。

こちらもご覧ください

適用対象

Matches(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した入力文字列内で、指定した正規表現に一致するすべての箇所を検索します。

public:
 static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As MatchCollection

パラメーター

input
String

一致する対象を検索する文字列。

pattern
String

一致させる正規表現パターン。

options
RegexOptions

一致オプションを指定する列挙値のビットごとの組み合わせ。

matchTimeout
TimeSpan

タイムアウト期間、またはメソッドがタイムアウトしないことを示す InfiniteMatchTimeout

戻り値

MatchCollection

検索によって見つかった Match オブジェクトのコレクション。 一致が見つからない場合は、空のコレクション オブジェクトが返されます。

例外

正規表現の解析エラーが発生しました。

input または patternnull です。

options は、RegexOptions 値のビットごとの正しい組み合わせではありません。

  • または - matchTimeout が負の値か、0 か、または約 24 日を超えています。

次の例では、メソッドを呼び出し Matches(String, String, RegexOptions, TimeSpan) て、"es" で終わる文内の単語と一致する大文字と小文字を区別する比較を実行します。 次に、メソッドを呼び出して、 Matches(String, String, RegexOptions, TimeSpan) 入力文字列とパターンの大文字と小文字を区別しない比較を実行します。 どちらの場合も、タイムアウト間隔は1秒に設定されます。 出力に示されているように、2つのメソッドは異なる結果を返します。

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "NOTES: Any notes or comments are optional.";
      
      // Call Matches method without specifying any options.
      try {
         foreach (Match match in Regex.Matches(sentence, pattern,
                                               RegexOptions.None,
                                               TimeSpan.FromSeconds(1)))
            Console.WriteLine("Found '{0}' at position {1}", 
                              match.Value, match.Index);
      }
      catch (RegexMatchTimeoutException) {
         // Do Nothing: Assume that timeout represents no match.
      }
      Console.WriteLine();

      // Call Matches method for case-insensitive matching.
      try { 
         foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
            Console.WriteLine("Found '{0}' at position {1}", 
                              match.Value, match.Index);
      }
      catch (RegexMatchTimeoutException) {}
   }
}
// The example displays the following output:
//       Found 'notes' at position 11
//       
//       Found 'NOTES' at position 0
//       Found 'notes' at position 11
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "NOTES: Any notes or comments are optional."
      
      ' Call Matches method without specifying any options.
      For Each match As Match In Regex.Matches(sentence, pattern, 
                                               RegexOptions.None, 
                                               TimeSpan.FromSeconds(1))
         Try
            Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
         Catch e As RegexMatchTimeoutException
            ' Do Nothing: Assume that timeout represents no match.
         End Try
      Next
      Console.WriteLine()
      
      ' Call Matches method for case-insensitive matching.
      Try
         For Each match As Match In Regex.Matches(sentence, pattern, 
                                                  RegexOptions.IgnoreCase,
                                                  TimeSpan.FromSeconds(1))
            Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
         Next
      Catch de As RegexMatchTimeoutException
         ' Do Nothing: Assume that timeout represents no match.
      End Try
   End Sub
End Module
' The example displays the following output:
'       Found 'notes' at position 11
'       
'       Found 'NOTES' at position 0
'       Found 'notes' at position 11

正規表現パターン \b\w+es\b は、次の表に示すように定義されています。

パターン 説明
\b ワード境界から照合を開始します。
\w+ 1 つ以上の単語文字に一致します。
es リテラル文字列 "es" と一致します。
\b ワード境界で照合を終了します。

注釈

Matches(String, String, RegexOptions, TimeSpan)メソッドはメソッドに似ていますが、 Match(String, String, RegexOptions, TimeSpan) 単一の一致ではなく、入力文字列内で見つかったすべての一致に関する情報を返す点が異なります。 これは、次のコードと同じです。

   try {
      Match match = Regex.Match(input, pattern, options,
                                TimeSpan.FromSeconds(1));
      while (match.Success) {
            // Handle match here...

            match = match.NextMatch();
      }  
   }
   catch (RegexMatchTimeoutException) {
      // Do nothing: assume that exception represents no match.
   }
   Try
      Dim match As Match = Regex.Match(input, pattern, options, 
                                       TimeSpan.FromSeconds(1))
      Do While match.Success
            ' Handle match here...

            match = match.NextMatch()
      Loop  
   Catch e As RegexMatchTimeoutException
      ' Do nothing: assume that exception represents no match.
   End Try

静的 Matches メソッドは、 Regex 指定された正規表現パターンを使用してオブジェクトを構築し、インスタンスメソッドを呼び出すことと同じです Matches

パラメーターは、 pattern 一致させる文字列をシンボリックに記述する正規表現言語要素で構成されます。 正規表現の詳細については、「 .NET Framework 正規表現正規表現言語-クイックリファレンス」を参照してください。

メソッドは、 Matches レイジー評価を使用して、返されたオブジェクトを設定し MatchCollection ます。 やなど、このコレクションのメンバーにアクセス MatchCollection.Count MatchCollection.CopyTo すると、コレクションにすぐに値が設定されます。 レイジー評価を利用するには、 foreach For Each Visual Basic の C# や... などの構造体を使用してコレクションを反復処理する必要があります。 Next

遅延評価のため、メソッドを呼び出すと Matches 例外はスローされません RegexMatchTimeoutException 。 ただし、このメソッドによって返されるオブジェクトに対して操作が実行された場合 MatchCollection 、一致する操作がパラメーターで指定されたこのタイムアウト時間を超えると、例外がスローされ matchTimeout ます。

注意 (呼び出し元)

パラメーターには、 matchTimeout 2 秒などの適切な値を設定することをお勧めします。 を指定してタイムアウトを無効にすると InfiniteMatchTimeout 、正規表現エンジンのパフォーマンスが若干向上します。 ただし、次の条件下でのみタイムアウトを無効にする必要があります。 -正規表現によって処理される入力が既知の信頼できるソースから派生した場合、または静的なテキストで構成されている場合。 これにより、ユーザーが動的に入力したテキストは除外されます。

-正規表現パターンが完全にテストされ、一致、一致しない、および近い一致を効率的に処理できるようになった場合。

-正規表現パターンに、ほぼ一致を処理するときに過度なバックトラッキングを発生させることがわかっている言語要素が含まれていない場合。

こちらもご覧ください

適用対象