Regex.Matches Regex.Matches Regex.Matches Regex.Matches Method

定義

入力文字列内で正規表現と一致する対象をすべて検索し、見つかった対象をすべて返します。Searches an input string for all occurrences of a regular expression and returns all the matches.

オーバーロード

Matches(String) Matches(String) Matches(String) Matches(String)

指定した入力文字列内で、正規表現と一致する対象をすべて検索します。Searches the specified input string for all occurrences of a regular expression.

Matches(String, Int32) Matches(String, Int32) Matches(String, Int32) Matches(String, Int32)

入力文字列内の指定した開始位置から検索を開始した場合に、その指定入力文字列内で正規表現と一致する対象をすべて検索します。Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string.

Matches(String, String) Matches(String, String) Matches(String, String) Matches(String, String)

指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。Searches the specified input string for all occurrences of a specified regular expression.

Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions)

指定した一致オプションを使用して、指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options.

Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した入力文字列内で、指定した正規表現に一致するすべての箇所を検索します。Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options and time-out interval.

Matches(String) Matches(String) Matches(String) Matches(String)

指定した入力文字列内で、正規表現と一致する対象をすべて検索します。Searches the specified input string for all occurrences of a regular expression.

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 String String String

一致する対象を検索する文字列。The string to search for a match.

戻り値

検索によって見つかった Match オブジェクトのコレクション。A collection of the Match objects found by the search. 一致が見つからない場合は、空のコレクション オブジェクトが返されます。If no matches are found, the method returns an empty collection object.

例外

次の例では、 Matches(String) "es"で終わる文内の任意の単語を識別するメソッド。The following example uses the Matches(String) method to identify any words in a sentence that end in "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 は、次の表に示すように定義されています。The regular expression pattern \b\w+es\b is defined as shown in the following table.

パターンPattern 説明Description
\b ワード境界から照合を開始します。Begin the match at a word boundary.
\w+ 1 つ以上の単語文字に一致します。Match one or more word characters.
es リテラル文字列"es"と一致します。Match the literal string "es".
\b ワード境界で照合を終了します。End the match at a word boundary.

注釈

Matches(String)メソッドは、Match(String)メソッド、it は、すべての一致に関する情報を返します点を除いて、単一の一致ではなく、入力文字列にあります。The Matches(String) method is similar to the Match(String) method, except that it returns information about all the matches found in the input string, instead of a single match. これは、次のコードに相当します。It is equivalent to the following code:

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  

コレクションは、一致だけが含まれていて、最初の非の一致で終了します。The collection includes only matches and terminates at the first non-match.

対象の正規表現パターン、Matches(String)のいずれかへの呼び出しによってメソッドの検索条件が定義されている、Regexクラスのコンス トラクター。The regular expression pattern for which the Matches(String) method searches is defined by the call to one of the Regex class constructors. 正規表現パターンを形成することができる要素についての詳細については、次を参照してください。正規表現言語 - クイック リファレンスします。For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

Matchesメソッドでは、遅延評価を使用して、返された事前設定MatchCollectionオブジェクト。The Matches method uses lazy evaluation to populate the returned MatchCollection object. このコレクションのメンバーへのアクセスなどMatchCollection.CountMatchCollection.CopyToがすぐに設定されるコレクションが発生します。Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 遅延評価を利用するなどのコンストラクトを使用して、コレクションを反復する必要がありますforeach(C#) とFor Each.NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basic では、上記のようになります。in Visual Basic.

、遅延評価のための呼び出し、Matches(String)メソッドはスローしません、RegexMatchTimeoutException例外。Because of its lazy evaluation, calling the Matches(String) method does not throw a RegexMatchTimeoutException exception. 操作が実行されると、例外がスロー、MatchCollectionオブジェクトの場合、このメソッドによって返される、MatchTimeoutプロパティはRegex.InfiniteMatchTimeoutと一致する操作がタイムアウト間隔を超えています。However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if the MatchTimeout property is not Regex.InfiniteMatchTimeout and a matching operation exceeds the time-out interval.

こちらもご覧ください

Matches(String, Int32) Matches(String, Int32) Matches(String, Int32) Matches(String, Int32)

入力文字列内の指定した開始位置から検索を開始した場合に、その指定入力文字列内で正規表現と一致する対象をすべて検索します。Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string.

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 String String String

一致する対象を検索する文字列。The string to search for a match.

startat
Int32 Int32 Int32 Int32

入力文字列内の検索を開始する文字位置。The character position in the input string at which to start the search.

戻り値

検索によって見つかった Match オブジェクトのコレクション。A collection of the Match objects found by the search. 一致が見つからない場合は、空のコレクション オブジェクトが返されます。If no matches are found, the method returns an empty collection object.

例外

startat が 0 未満か、input の長さを超えています。startat is less than zero or greater than the length of input.

次の例では、 Match(String) "es"で終わるを呼び出して文の最初の単語を検索するメソッド、 Matches(String, Int32) "es"で終わる単語、追加を識別するメソッド。The following example uses the Match(String) method to find the first word in a sentence that ends in "es", and then calls the Matches(String, Int32) method to identify any additional words that end in "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 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 は、次の表に示すように定義されています。The regular expression pattern \b\w+es\b is defined as shown in the following table.

パターンPattern 説明Description
\b ワード境界から照合を開始します。Begin the match at a word boundary.
\w+ 1 つ以上の単語文字に一致します。Match one or more word characters.
es リテラル文字列"es"と一致します。Match the literal string "es".
\b ワード境界で照合を終了します。End the match at a word boundary.

注釈

Matches(String, Int32)メソッドは、Match(String, Int32)メソッド、it は、すべての一致に関する情報を返します点を除いて、単一の一致ではなく、入力文字列にあります。The Matches(String, Int32) method is similar to the Match(String, Int32) method, except that it returns information about all the matches found in the input string, instead of a single match. これは、次のコードに相当します。It is equivalent to the following code:

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  

対象の正規表現パターン、Matches(String, Int32)のいずれかへの呼び出しによってメソッドの検索条件が定義されている、Regexクラスのコンス トラクター。The regular expression pattern for which the Matches(String, Int32) method searches is defined by the call to one of the Regex class constructors. 正規表現パターンを形成することができる要素についての詳細については、次を参照してください。正規表現言語 - クイック リファレンスします。For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

Matchesメソッドでは、遅延評価を使用して、返された事前設定MatchCollectionオブジェクト。The Matches method uses lazy evaluation to populate the returned MatchCollection object. このコレクションのメンバーへのアクセスなどMatchCollection.CountMatchCollection.CopyToがすぐに設定されるコレクションが発生します。Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 遅延評価を利用するなどのコンストラクトを使用して、コレクションを反復する必要がありますforeach(C#) とFor Each.NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basic では、上記のようになります。in Visual Basic.

、遅延評価のための呼び出し、Matches(String, Int32)メソッドはスローしません、RegexMatchTimeoutException例外。Because of its lazy evaluation, calling the Matches(String, Int32) method does not throw a RegexMatchTimeoutException exception. 操作が実行されると、例外がスロー、MatchCollectionオブジェクトの場合、このメソッドによって返される、MatchTimeoutプロパティはRegex.InfiniteMatchTimeoutと一致する操作がタイムアウト間隔を超えています。However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if the MatchTimeout property is not Regex.InfiniteMatchTimeout and a matching operation exceeds the time-out interval.

こちらもご覧ください

Matches(String, String) Matches(String, String) Matches(String, String) Matches(String, String)

指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。Searches the specified input string for all occurrences of a specified regular expression.

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 String String String

一致する対象を検索する文字列。The string to search for a match.

pattern
String String String String

一致させる正規表現パターン。The regular expression pattern to match.

戻り値

検索によって見つかった Match オブジェクトのコレクション。A collection of the Match objects found by the search. 一致が見つからない場合は、空のコレクション オブジェクトが返されます。If no matches are found, the method returns an empty collection object.

例外

正規表現の解析エラーが発生しました。A regular expression parsing error occurred.

input または patternnull です。input or pattern is null.

次の例では、 Matches(String, String) "es"で終わる文で任意の単語を識別するメソッド。The following example uses the Matches(String, String) method to identify any word in a sentence that ends in "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 は、次の表に示すように定義されています。The regular expression pattern \b\w+es\b is defined as shown in the following table.

パターンPattern 説明Description
\b ワード境界から照合を開始します。Begin the match at a word boundary.
\w+ 1 つ以上の単語文字に一致します。Match one or more word characters.
es リテラル文字列"es"と一致します。Match the literal string "es".
\b ワード境界で照合を終了します。End the match at a word boundary.

注釈

Matches(String, String)メソッドは、Match(String, String)メソッド、it は、すべての一致に関する情報を返します点を除いて、単一の一致ではなく、入力文字列にあります。The Matches(String, String) method is similar to the Match(String, String) method, except that it returns information about all the matches found in the input string, instead of a single match. これは、次のコードに相当します。It is equivalent to the following code:

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します。The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

patternパラメーターは、シンボルと一致する文字列を記述する正規表現言語要素で構成されています。The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 正規表現の詳細については、次を参照してください。 .NET Framework の正規表現正規表現言語 - クイック リファレンスします。For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Matchesメソッドでは、遅延評価を使用して、返された事前設定MatchCollectionオブジェクト。The Matches method uses lazy evaluation to populate the returned MatchCollection object. このコレクションのメンバーへのアクセスなどMatchCollection.CountMatchCollection.CopyToがすぐに設定されるコレクションが発生します。Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 遅延評価を利用するなどのコンストラクトを使用して、コレクションを反復する必要がありますforeach(C#) とFor Each.NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basic では、上記のようになります。in Visual Basic.

、遅延評価のための呼び出し、Matches(String, String)メソッドはスローしません、RegexMatchTimeoutException例外。Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. ただし、例外がスローで操作が実行されると、MatchCollectionタイムアウト間隔が現在のアプリケーション ドメインと一致する操作の"REGEX_DEFAULT_MATCH_TIMEOUT"プロパティで定義されている場合、このメソッドによって返されるオブジェクトこのタイムアウト間隔を超えています。However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if a time-out interval is defined by the "REGEX_DEFAULT_MATCH_TIMEOUT" property of the current application domain and a matching operation exceeds this time-out interval.

注意 (呼び出し元)

このメソッドが呼び出されて、アプリケーション ドメインの既定のタイムアウト値に等しい間隔後にタイムアウトが発生しました。This method times out after an interval that is equal to the default time-out value of the application domain in which it is called. 値は、アプリケーション ドメインのタイムアウト値が定義されていない場合InfiniteMatchTimeout、タイムアウトしたからメソッドを防ぐことが使用されます。If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. 推奨される静的メソッドと一致する複数のパターンを取得するのMatches(String, String, RegexOptions, TimeSpan)、タイムアウト間隔を指定することができます。The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you specify the time-out interval.

こちらもご覧ください

Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions)

指定した一致オプションを使用して、指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options.

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 String String String

一致する対象を検索する文字列。The string to search for a match.

pattern
String String String String

一致させる正規表現パターン。The regular expression pattern to match.

options
RegexOptions RegexOptions RegexOptions RegexOptions

一致オプションを指定する列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that specify options for matching.

戻り値

検索によって見つかった Match オブジェクトのコレクション。A collection of the Match objects found by the search. 一致が見つからない場合は、空のコレクション オブジェクトが返されます。If no matches are found, the method returns an empty collection object.

例外

正規表現の解析エラーが発生しました。A regular expression parsing error occurred.

input または patternnull です。input or pattern is null.

options は、RegexOptions 値のビットごとの正しい組み合わせではありません。options is not a valid bitwise combination of RegexOptions values.

次の例では、Matches(String, String)メソッドを呼び出して"es"で終わる文で任意の単語を識別するために、Matches(String, String, RegexOptions)入力文字列とパターンの大文字と小文字を実行するメソッド。The following example calls the Matches(String, String) method to identify any word in a sentence that ends in "es", and then calls the Matches(String, String, RegexOptions) method to perform a case-insensitive comparison of the pattern with the input string. 出力を 2 つの方法は異なる結果を返します。As the output shows, the two methods return different results.

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 は、次の表に示すように定義されています。The regular expression pattern \b\w+es\b is defined as shown in the following table.

パターンPattern 説明Description
\b ワード境界から照合を開始します。Begin the match at a word boundary.
\w+ 1 つ以上の単語文字に一致します。Match one or more word characters.
es リテラル文字列"es"と一致します。Match the literal string "es".
\b ワード境界で照合を終了します。End the match at a word boundary.

注釈

Matches(String, String, RegexOptions)メソッドは、Match(String, String, RegexOptions)メソッド、it は、すべての一致に関する情報を返します点を除いて、単一の一致ではなく、入力文字列にあります。The Matches(String, String, RegexOptions) method is similar to the Match(String, String, RegexOptions) method, except that it returns information about all the matches found in the input string, instead of a single match. これは、次のコードに相当します。It is equivalent to the following code:

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します。The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

patternパラメーターは、シンボルと一致する文字列を記述する正規表現言語要素で構成されています。The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 正規表現の詳細については、次を参照してください。 .NET Framework の正規表現正規表現言語 - クイック リファレンスします。For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Matchesメソッドでは、遅延評価を使用して、返された事前設定MatchCollectionオブジェクト。The Matches method uses lazy evaluation to populate the returned MatchCollection object. このコレクションのメンバーへのアクセスなどMatchCollection.CountMatchCollection.CopyToがすぐに設定されるコレクションが発生します。Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 遅延評価を利用するなどのコンストラクトを使用して、コレクションを反復する必要がありますforeach(C#) とFor Each.NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basic では、上記のようになります。in Visual Basic.

、遅延評価のための呼び出し、Matches(String, String)メソッドはスローしません、RegexMatchTimeoutException例外。Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. ただし、例外がスローで操作が実行されると、MatchCollectionタイムアウト間隔が現在のアプリケーション ドメインと一致する操作の"REGEX_DEFAULT_MATCH_TIMEOUT"プロパティで定義されている場合、このメソッドによって返されるオブジェクトこのタイムアウト間隔を超えています。However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if a time-out interval is defined by the "REGEX_DEFAULT_MATCH_TIMEOUT" property of the current application domain and a matching operation exceeds this time-out interval.

注意 (呼び出し元)

このメソッドが呼び出されて、アプリケーション ドメインの既定のタイムアウト値に等しい間隔後にタイムアウトが発生しました。This method times out after an interval that is equal to the default time-out value of the application domain in which it is called. 値は、アプリケーション ドメインのタイムアウト値が定義されていない場合InfiniteMatchTimeout、タイムアウトしたからメソッドを防ぐことが使用されます。If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. 推奨される静的メソッドと一致する複数のパターンを取得するのMatches(String, String, RegexOptions, TimeSpan)、タイムアウト間隔を設定することができます。The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

こちらもご覧ください

Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した入力文字列内で、指定した正規表現に一致するすべての箇所を検索します。Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options and time-out interval.

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 String String String

一致する対象を検索する文字列。The string to search for a match.

pattern
String String String String

一致させる正規表現パターン。The regular expression pattern to match.

options
RegexOptions RegexOptions RegexOptions RegexOptions

一致オプションを指定する列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that specify options for matching.

matchTimeout
TimeSpan TimeSpan TimeSpan TimeSpan

タイムアウト期間、またはメソッドがタイムアウトしないことを示す InfiniteMatchTimeoutA time-out interval, or InfiniteMatchTimeout to indicate that the method should not time out.

戻り値

検索によって見つかった Match オブジェクトのコレクション。A collection of the Match objects found by the search. 一致が見つからない場合は、空のコレクション オブジェクトが返されます。If no matches are found, the method returns an empty collection object.

例外

正規表現の解析エラーが発生しました。A regular expression parsing error occurred.

input または patternnull です。input or pattern is null.

options は、RegexOptions 値のビットごとの正しい組み合わせではありません。options is not a valid bitwise combination of RegexOptions values.

または-or- matchTimeout が負の値か、0 か、または約 24 日を超えています。matchTimeout is negative, zero, or greater than approximately 24 days.

次の例では、 Matches(String, String, RegexOptions, TimeSpan) "es"で終わる文で任意の単語に一致する大文字小文字の比較を実行するメソッド。The following example calls the Matches(String, String, RegexOptions, TimeSpan) method to perform a case-sensitive comparison that matches any word in a sentence that ends in "es". 呼び出して、Matches(String, String, RegexOptions, TimeSpan)入力文字列とパターンの大文字と小文字を実行するメソッド。It then calls the Matches(String, String, RegexOptions, TimeSpan) method to perform a case-insensitive comparison of the pattern with the input string. どちらの場合も、タイムアウト間隔は 1 秒に設定します。In both cases, the time-out interval is set to one second. 出力を 2 つの方法は異なる結果を返します。As the output shows, the two methods return different results.

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 は、次の表に示すように定義されています。The regular expression pattern \b\w+es\b is defined as shown in the following table.

パターンPattern 説明Description
\b ワード境界から照合を開始します。Begin the match at a word boundary.
\w+ 1 つ以上の単語文字に一致します。Match one or more word characters.
es リテラル文字列"es"と一致します。Match the literal string "es".
\b ワード境界で照合を終了します。End the match at a word boundary.

注釈

Matches(String, String, RegexOptions, TimeSpan)メソッドは、Match(String, String, RegexOptions, TimeSpan)メソッド、it は、すべての一致に関する情報を返します点を除いて、単一の一致ではなく、入力文字列にあります。The Matches(String, String, RegexOptions, TimeSpan) method is similar to the Match(String, String, RegexOptions, TimeSpan) method, except that it returns information about all the matches found in the input string, instead of a single match. これは、次のコードに相当します。It is equivalent to the following code:

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します。The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

patternパラメーターは、シンボルと一致する文字列を記述する正規表現言語要素で構成されています。The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 正規表現の詳細については、次を参照してください。 .NET Framework の正規表現正規表現言語 - クイック リファレンスします。For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Matchesメソッドでは、遅延評価を使用して、返された事前設定MatchCollectionオブジェクト。The Matches method uses lazy evaluation to populate the returned MatchCollection object. このコレクションのメンバーへのアクセスなどMatchCollection.CountMatchCollection.CopyToがすぐに設定されるコレクションが発生します。Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 遅延評価を利用するなどのコンストラクトを使用して、コレクションを反復する必要がありますforeach(C#) とFor Each.NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basic では、上記のようになります。in Visual Basic.

、遅延評価のための呼び出し、Matchesメソッドはスローしません、RegexMatchTimeoutException例外。Because of its lazy evaluation, calling the Matches method does not throw a RegexMatchTimeoutException exception. ただし、例外がスローで操作が実行されると、MatchCollection一致操作で指定されたタイムアウトの間隔を超えた場合に、このメソッドによって返されるオブジェクト、matchTimeoutパラメーター。However, an exception is thrown when an operation is performed on the MatchCollection object returned by this method, if a matching operation exceeds this time-out interval specified by thematchTimeout parameter.

注意 (呼び出し元)

設定することをお勧め、matchTimeoutに 2 秒などの適切な値のパラメーター。We recommend that you set the matchTimeout parameter to an appropriate value, such as two seconds. タイムアウトを指定することで無効にした場合InfiniteMatchTimeout、正規表現エンジンが若干優れたパフォーマンスを提供します。If you disable time-outs by specifying InfiniteMatchTimeout, the regular expression engine offers slightly better performance. ただし、タイムアウトは、次の条件下でのみ無効にする必要があります。However, you should disable time-outs only under the following conditions: -正規表現によって処理される入力は既知の信頼されたソースから派生または静的テキストで構成されます。- When the input processed by a regular expression is derived from a known and trusted source or consists of static text. これには、動的にユーザーが入力されているテキストが含まれません。This excludes text that has been dynamically input by users.

-効率的に処理することを確認する正規表現パターンが十分にテストされているときは、一致すると、一致以外の場合と近い一致します。- When the regular expression pattern has been thoroughly tested to ensure that it efficiently handles matches, non-matches, and near matches.

場合は、正規表現パターンにほぼ一致を処理するときに、過度なバックトラッ キングが発生することがわかっている言語要素は含まれていません。- When the regular expression pattern contains no language elements that are known to cause excessive backtracking when processing a near match.

こちらもご覧ください

適用対象