次の方法で共有


Regex.Match メソッド

定義

正規表現パターンに一致する部分文字列を入力文字列で検索し、最初の出現箇所を単一の 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 コンストラクターで指定された正規表現が最初に出現する箇所を検索します。

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.dll>

using namespace System;
using namespace System::Text::RegularExpressions;
void main()
{
   
   String^ text = "One car red car blue car";
   String^ pat = "(\\w+)\\s+(car)";
   
   // Compile the regular expression.
   Regex^ r = gcnew 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{0}", ++matchCount );
      for ( int i = 1; i <= 2; i++ )
      {
         Group^ g = m->Groups[ i ];
         Console::WriteLine( "Group{0}='{1}'", i, g );
         CaptureCollection^ cc = g->Captures;
         for ( int j = 0; j < cc->Count; j++ )
         {
            Capture^ c = cc[ j ];
            System::Console::WriteLine( "Capture{0}='{1}', Position={2}", j, c, 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
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 回のメソッド呼び出しですべての一致を取得することもできます。

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

こちらもご覧ください

適用対象

Match(String, Int32)

ソース:
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

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

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

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

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 クラス コンストラクターの 1 つを呼び出すことによって定義されます。 正規表現パターンを形成できる要素の詳細については、「正規表現言語の - クイック リファレンス」を参照してください。

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

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

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

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

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

こちらもご覧ください

適用対象

Match(String, String, RegexOptions)

ソース:
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

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

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を指定してタイムアウトを無効にすると、正規表現エンジンのパフォーマンスが若干向上します。 ただし、タイムアウトは次の条件でのみ無効にする必要があります。

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

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

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

こちらもご覧ください

適用対象