次の方法で共有


Regex.Match メソッド

定義

正規表現パターンに一致する部分文字列を入力文字列で検索し、最初の出現箇所を 1 つの Match オブジェクトとして返します。

オーバーロード

名前 説明
Match(String)

指定した入力文字列を検索して、 Regex コンストラクターで指定された正規表現が最初に出現します。

Match(String, Int32)

文字列内の指定した開始位置から始まる正規表現の最初の出現箇所を入力文字列で検索します。

Match(String, String)

指定した正規表現の最初の出現箇所について、指定した入力文字列を検索します。

Match(String, Int32, Int32)

指定した開始位置から始まり、指定した文字数のみを検索して、正規表現の最初の出現箇所を入力文字列で検索します。

Match(String, String, RegexOptions)

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

Match(String, String, RegexOptions, TimeSpan)

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

Match(String)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

指定した入力文字列を検索して、 Regex コンストラクターで指定された正規表現が最初に出現します。

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

パラメーター

input
String

一致を検索する文字列。

戻り値

一致に関する情報を含むオブジェクト。

例外

inputnullです。

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。

次の例では、文字列内の正規表現パターンの一致を検索し、一致するグループ、キャプチャ、キャプチャ位置を一覧表示します。

using System;
using System.Text.RegularExpressions;

class Example
{
   static void Main()
   {
      string text = "One car red car blue car";
      string pat = @"(\w+)\s+(car)";

      // Instantiate the regular expression object.
      Regex r = new Regex(pat, RegexOptions.IgnoreCase);

      // Match the regular expression pattern against a text string.
      Match m = r.Match(text);
      int matchCount = 0;
      while (m.Success)
      {
         Console.WriteLine("Match"+ (++matchCount));
         for (int i = 1; i <= 2; i++)
         {
            Group g = m.Groups[i];
            Console.WriteLine("Group"+i+"='" + g + "'");
            CaptureCollection cc = g.Captures;
            for (int j = 0; j < cc.Count; j++)
            {
               Capture c = cc[j];
               System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
            }
         }
         m = m.NextMatch();
      }
   }
}
// This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim text As String = "One car red car blue car"
      Dim pattern As String = "(\w+)\s+(car)"

      ' Instantiate the regular expression object.
      Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase)

      ' Match the regular expression pattern against a text string.
      Dim m As Match = r.Match(text)
      Dim matchcount as Integer = 0
      Do While m.Success
         matchCount += 1
         Console.WriteLine("Match" & (matchCount))
         Dim i As Integer
         For i = 1 to 2
            Dim g as Group = m.Groups(i)
            Console.WriteLine("Group" & i & "='" & g.ToString() & "'")
            Dim cc As CaptureCollection = g.Captures
            Dim j As Integer 
            For j = 0 to cc.Count - 1
              Dim c As Capture = cc(j)
               Console.WriteLine("Capture" & j & "='" & c.ToString() _
                  & "', Position=" & c.Index)
            Next 
         Next 
         m = m.NextMatch()
      Loop
   End Sub
End Module
' This example displays the following output:
'       Match1
'       Group1='One'
'       Capture0='One', Position=0
'       Group2='car'
'       Capture0='car', Position=4
'       Match2
'       Group1='red'
'       Capture0='red', Position=8
'       Group2='car'
'       Capture0='car', Position=12
'       Match3
'       Group1='blue'
'       Capture0='blue', Position=16
'       Group2='car'
'       Capture0='car', Position=21

正規表現パターン (\w+)\s+(car) は、単語 "car" の出現箇所とその前にある単語と一致します。 これは、次の表に示すように解釈されます。

パターン 形容
(\w+) 1 つ以上の単語文字と一致します。 これは最初のキャプチャ グループです。
\s+ 1 つ以上の空白文字と一致します。
(車) リテラル文字列 "car" と一致します。 これは 2 番目のキャプチャ グループです。

注釈

Match(String) メソッドは、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。 正規表現パターンの作成に使用する言語要素の詳細については、「正規表現 言語 - クイック リファレンス」を参照してください

返された Match オブジェクトの Success プロパティの値を調べて、入力文字列に正規表現パターンが見つかったかどうかを確認できます。 一致が見つかった場合、返される Match オブジェクトの Value プロパティには、正規表現パターンに一致する input の部分文字列が含まれます。 一致するものが見つからない場合、その値は String.Empty

このメソッドは、正規表現パターンに一致する input の最初の部分文字列を返します。 返された Match オブジェクトの Match.NextMatch メソッドを繰り返し呼び出すことによって、後続の一致を取得できます。 Regex.Matches(String) メソッドを呼び出すことで、1 つのメソッド呼び出しですべての一致を取得することもできます。

一致する操作の実行時間が、RegexMatchTimeoutException コンストラクターで指定されたタイムアウト間隔を超えると、Regex.Regex(String, RegexOptions, TimeSpan)例外がスローされます。 コンストラクターを呼び出すときにタイムアウト間隔を設定しない場合、 Regex オブジェクトが作成されるアプリケーション ドメインに対して確立されたタイムアウト値を操作が超えると、例外がスローされます。 Regex コンストラクター呼び出しまたはアプリケーション ドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値がRegex.InfiniteMatchTimeout場合、例外はスローされません。

こちらもご覧ください

適用対象

Match(String, Int32)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

文字列内の指定した開始位置から始まる正規表現の最初の出現箇所を入力文字列で検索します。

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

パラメーター

input
String

一致を検索する文字列。

startat
Int32

検索を開始する位置を 0 から始める文字位置。

戻り値

一致に関する情報を含むオブジェクト。

例外

inputnullです。

startat が 0 より小さいか、 inputの長さより大きい値です。

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。

注釈

この API の詳細については、「 Regex.Match の補足 API 解説」を参照してください。

こちらもご覧ください

適用対象

Match(String, String)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

指定した正規表現の最初の出現箇所について、指定した入力文字列を検索します。

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

パラメーター

input
String

一致を検索する文字列。

pattern
String

照合する正規表現パターン。

戻り値

一致に関する情報を含むオブジェクト。

例外

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

input または patternnull

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。

次の例では、 Match(String, String) メソッドを呼び出して、少なくとも 1 つの z 文字を含む最初の単語を検索し、 Match.NextMatch メソッドを呼び出して追加の一致を検索します。

using System;
using System.Text.RegularExpressions;

namespace Examples
{
    public class Example
    {
        public static void Main()
        {
            string input = "ablaze beagle choral dozen elementary fanatic " +
                           "glaze hunger inept jazz kitchen lemon minus " +
                           "night optical pizza quiz restoration stamina " +
                           "train unrest vertical whiz xray yellow zealous";
            string pattern = @"\b\w*z+\w*\b";
            Match m = Regex.Match(input, pattern);
            while (m.Success)
            {
                Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index);
                m = m.NextMatch();
            }
        }
    }
}

// The example displays the following output:
//    'ablaze' found at position 0
//    'dozen' found at position 21
//    'glaze' found at position 46
//    'jazz' found at position 65
//    'pizza' found at position 104
//    'quiz' found at position 110
//    'whiz' found at position 157
//    'zealous' found at position 174
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "ablaze beagle choral dozen elementary fanatic " +
                            "glaze hunger inept jazz kitchen lemon minus " +
                            "night optical pizza quiz restoration stamina " +
                            "train unrest vertical whiz xray yellow zealous"
      Dim pattern As String = "\b\w*z+\w*\b"
      Dim m As Match = Regex.Match(input, pattern)
      Do While m.Success 
         Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index)
         m = m.NextMatch()
      Loop                      
   End Sub
End Module
' The example displays the following output:
    'ablaze' found at position 0
    'dozen' found at position 21
    'glaze' found at position 46
    'jazz' found at position 65
    'pizza' found at position 104
    'quiz' found at position 110
    'whiz' found at position 157
    'zealous' found at position 174

この正規表現パターン \b\w*z+\w*\b の解釈を次の表に示します。

パターン 形容
\b 単語の境界で一致を開始します。
\w* 0 文字、1 文字以上の単語文字と一致します。
z+ z文字の 1 つ以上の出現箇所と一致します。
\w* 0 文字、1 文字以上の単語文字と一致します。
\b 単語の境界で一致を終了します。

注釈

Match(String, String) メソッドは、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。 正規表現パターンの作成に使用する言語要素の詳細については、「正規表現 言語 - クイック リファレンス」を参照してください

静的 Match(String, String) メソッドは、指定した正規表現パターンを使用して Regex オブジェクトを構築し、インスタンス Match(String) メソッドを呼び出すことと同じです。 この場合、正規表現エンジンは正規表現パターンをキャッシュします。

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

返された Match オブジェクトの Success プロパティの値を調べて、入力文字列に正規表現パターンが見つかったかどうかを確認できます。 一致が見つかった場合、返される Match オブジェクトの Value プロパティには、正規表現パターンに一致する input の部分文字列が含まれます。 一致するものが見つからない場合、その値は String.Empty

このメソッドは、正規表現パターンに一致する input の最初の部分文字列を返します。 返された Match オブジェクトの Match.NextMatch メソッドを繰り返し呼び出すことによって、後続の一致を取得できます。 Regex.Matches(String, String) メソッドを呼び出すことで、1 つのメソッド呼び出しですべての一致を取得することもできます。

一致する操作の実行時間が、メソッドが呼び出されるアプリケーション ドメインに対して指定されたタイムアウト間隔を超えると、 RegexMatchTimeoutException 例外がスローされます。 アプリケーション ドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値が Regex.InfiniteMatchTimeout場合、例外はスローされません。

注意 (呼び出し元)

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

こちらもご覧ください

適用対象

Match(String, Int32, Int32)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

指定した開始位置から始まり、指定した文字数のみを検索して、正規表現の最初の出現箇所を入力文字列で検索します。

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

パラメーター

input
String

一致を検索する文字列。

beginning
Int32

検索する左端の位置を定義する入力文字列内の 0 から始まる文字位置。

length
Int32

検索に含める部分文字列の文字数。

戻り値

一致に関する情報を含むオブジェクト。

例外

inputnullです。

beginning が 0 より小さいか、 inputの長さより大きい値です。

-又は-

length が 0 より小さいか、 inputの長さより大きい値です。

-又は-

beginning + length -1 は、 inputの範囲外の位置を識別します。

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。

注釈

Match(String, Int32, Int32) メソッドは、入力文字列の一部の正規表現パターンに一致する最初の部分文字列を返します。 正規表現パターンの作成に使用する言語要素の詳細については、「正規表現 言語 - クイック リファレンス」を参照してください

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

Match(String, Int32, Int32)メソッドは、正規表現パターンのbeginningおよびlengthパラメーターによって定義されたinputの部分を検索します。 beginning 常に検索に含める左端の文字のインデックスを定義し、 length 検索する最大文字数を定義します。 一緒に、検索の範囲を定義します。 この動作は、 input が実質的に input.Substring(beginning, length)された場合とまったく同じですが、一致するインデックスが inputの先頭を基準にカウントされる点が異なります。 つまり、パターンの先頭または末尾にあるアンカーまたはゼロ幅アサーションは、この範囲外の input がないかのように動作します。 たとえば、アンカーの ^\G\Abeginning$ で満たされ、 \zbeginning + length - 1で満たされます。

検索が左から右 (既定値) に進む場合、正規表現エンジンはインデックス beginning の文字からインデックス beginning + length - 1の文字まで検索します。 正規表現エンジンが RegexOptions.RightToLeft オプションを使用してインスタンス化され、検索が右から左に進む場合、正規表現エンジンはインデックス beginning + length - 1 の文字からインデックス beginningの文字まで検索します。

このメソッドは、この範囲内で検出された最初の一致を返します。 返された Match オブジェクトの Match.NextMatch メソッドを繰り返し呼び出すことによって、後続の一致を取得できます。

返された Match オブジェクトの Success プロパティの値を調べて、入力文字列に正規表現パターンが見つかったかどうかを確認できます。 一致が見つかった場合、返される Match オブジェクトの Value プロパティには、正規表現パターンに一致する input の部分文字列が含まれます。 一致するものが見つからない場合、その値は String.Empty

一致する操作の実行時間が、RegexMatchTimeoutException コンストラクターで指定されたタイムアウト間隔を超えると、Regex.Regex(String, RegexOptions, TimeSpan)例外がスローされます。 コンストラクターを呼び出すときにタイムアウト値を設定しない場合、操作が、 Regex オブジェクトが作成されるアプリケーション ドメインに対して確立されたタイムアウト値を超えると、例外がスローされます。 Regex コンストラクター呼び出しまたはアプリケーション ドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値がRegex.InfiniteMatchTimeout場合、例外はスローされません。

こちらもご覧ください

適用対象

Match(String, String, RegexOptions)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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

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

パラメーター

input
String

一致を検索する文字列。

pattern
String

照合する正規表現パターン。

options
RegexOptions

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

戻り値

一致に関する情報を含むオブジェクト。

例外

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

input または patternnull

options は、 RegexOptions 値の有効なビットごとの組み合わせではありません。

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。

次の例では、文字 "a" で始まる単語に一致する正規表現を定義します。 RegexOptions.IgnoreCase オプションを使用して、正規表現で大文字の "a" と小文字の "a" の両方で始まる単語が検索されるようにします。

using System;
using System.Text.RegularExpressions;

namespace Examples
{
    public class Example2
    {
        public static void Main()
        {
            string pattern = @"\ba\w*\b";
            string input = "An extraordinary day dawns with each new day.";
            Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
            if (m.Success)
                Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index);
        }
    }
}

// The example displays the following output:
//        Found 'An' at position 0.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\ba\w*\b"
      Dim input As String = "An extraordinary day dawns with each new day."
      Dim m As Match = Regex.Match(input, pattern, RegexOptions.IgnoreCase)
      If m.Success Then
         Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index)
      End If
   End Sub
End Module
' The example displays the following output:
'       Found 'An' at position 0.

この正規表現パターン \ba\w*\b の解釈を次の表に示します。

パターン 形容
\b 単語の境界で一致を開始します。
a 文字 "a" と一致します。
\w* 0 文字、1 文字以上の単語文字と一致します。
\b 単語の境界で一致を終了します。

注釈

Match(String, String, RegexOptions) メソッドは、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。 正規表現パターンの作成に使用する言語要素の詳細については、「正規表現 言語 - クイック リファレンス」を参照してください

静的Match(String, String, RegexOptions) メソッドは、Regex(String, RegexOptions) コンストラクターを使用してRegex オブジェクトを構築し、インスタンス Match(String) メソッドを呼び出すことと同じです。

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

返された Match オブジェクトの Success プロパティの値を調べて、入力文字列に正規表現パターンが見つかったかどうかを確認できます。 一致が見つかった場合、返される Match オブジェクトの Value プロパティには、正規表現パターンに一致する input の部分文字列が含まれます。 一致するものが見つからない場合、その値は String.Empty

このメソッドは、正規表現パターンに一致する input で見つかった最初の部分文字列を返します。 返された Match オブジェクトの NextMatch メソッドを繰り返し呼び出すことによって、後続の一致を取得できます。 Regex.Matches(String, String, RegexOptions) メソッドを呼び出すことで、1 つのメソッド呼び出しですべての一致を取得することもできます。

一致する操作の実行時間が、メソッドが呼び出されるアプリケーション ドメインに対して指定されたタイムアウト間隔を超えると、 RegexMatchTimeoutException 例外がスローされます。 アプリケーション ドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値が Regex.InfiniteMatchTimeout場合、例外はスローされません。

注意 (呼び出し元)

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

こちらもご覧ください

適用対象

Match(String, String, RegexOptions, TimeSpan)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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

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

パラメーター

input
String

一致を検索する文字列。

pattern
String

照合する正規表現パターン。

options
RegexOptions

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

matchTimeout
TimeSpan

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

戻り値

一致に関する情報を含むオブジェクト。

例外

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

input または patternnull

options は、 RegexOptions 値の有効なビットごとの組み合わせではありません。

-又は-

matchTimeout が負、ゼロ、または約 24 日を超えています。

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。

注釈

Match(String, String, RegexOptions, TimeSpan) メソッドは、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。 正規表現パターンの作成に使用する言語要素の詳細については、「正規表現 言語 - クイック リファレンス」を参照してください

静的Match(String, String, RegexOptions, TimeSpan) メソッドは、Regex(String, RegexOptions, TimeSpan) コンストラクターを使用してRegex オブジェクトを構築し、インスタンス Match(String) メソッドを呼び出すことと同じです。

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

返された Match オブジェクトの Success プロパティの値を調べて、入力文字列に正規表現パターンが見つかったかどうかを確認できます。 一致が見つかった場合、返される Match オブジェクトの Value プロパティには、正規表現パターンに一致する input の部分文字列が含まれます。 一致するものが見つからない場合、その値は String.Empty

このメソッドは、正規表現パターンに一致する input で見つかった最初の部分文字列を返します。 返された Match オブジェクトの NextMatch メソッドを繰り返し呼び出すことによって、後続の一致を取得できます。 Regex.Matches(String, String, RegexOptions) メソッドを呼び出すことで、1 つのメソッド呼び出しですべての一致を取得することもできます。

matchTimeout パラメーターは、パターン マッチング メソッドがタイムアウトするまでの一致の検索を試行する期間を指定します。タイムアウト間隔を設定すると、過剰なバックトラッキングに依存する正規表現が、近い一致を含む入力を処理するときに応答を停止するように見えるのを防ぐことができます。 詳細については、「正規表現とバックトラッキングのベスト プラクティス」を参照してください。 その時間間隔で一致するものが見つからない場合、メソッドは RegexMatchTimeoutException 例外をスローします。 matchTimeout は、メソッドが実行されるアプリケーション ドメインに対して定義されている既定のタイムアウト値をオーバーライドします。

注意 (呼び出し元)

matchTimeout パラメーターを適切な値 (2 秒など) に設定することをお勧めします。 InfiniteMatchTimeoutを指定してタイムアウトを無効にすると、正規表現エンジンのパフォーマンスが若干向上します。 ただし、タイムアウトは次の条件でのみ無効にする必要があります。

  • 正規表現によって処理される入力が既知の信頼できるソースから派生した場合、または静的テキストで構成されている場合。 これにより、ユーザーによって動的に入力されたテキストが除外されます。

  • 正規表現パターンが十分にテストされ、一致、一致しない、および近い一致が効率的に処理されるようにする場合。

  • 正規表現パターンに、近い一致を処理するときに過剰なバックトラッキングを引き起こすことがわかっている言語要素が含まれている場合。

こちらもご覧ください

適用対象