Regex.Match メソッド

定義

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

オーバーロード

Match(String, String, RegexOptions, TimeSpan)

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

Match(String, Int32, Int32)

入力文字列内の指定した開始位置から開始し、指定した文字数だけを検索対象として、その入力文字列内で正規表現に最初に一致する箇所を検索します。

Match(String, String, RegexOptions)

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

Match(String, Int32)

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

Match(String)

指定した入力文字列内で、Regex コンストラクターで指定された正規表現と最初に一致する対象を 1 つ検索します。

Match(String, String)

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

Match(String, String, RegexOptions, TimeSpan)

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

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

戻り値

Match

一致に関する情報を格納しているオブジェクト。

例外

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

input または patternnull です。

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

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

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」をご覧ください。

注釈

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

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

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

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

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

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

注意 (呼び出し元)

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

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

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

こちらもご覧ください

適用対象

Match(String, Int32, Int32)

入力文字列内の指定した開始位置から開始し、指定した文字数だけを検索対象として、その入力文字列内で正規表現に最初に一致する箇所を検索します。

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

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

戻り値

Match

一致に関する情報を格納しているオブジェクト。

例外

inputnullです。

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

  • または - length が 0 未満か、input の長さを超えています。

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

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」をご覧ください。

注釈

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

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

メソッド Match(String, Int32, Int32) は、 パラメーターと パラメーターで定義されている の部分を検索 input beginning length して正規表現パターンを検索します。 beginning は常に、検索に含める左端の文字のインデックスを定義し、検索する最大文字数 length を定義します。 一緒に、検索の範囲を定義します。 検索が左から右 (既定値) に進む場合、正規表現エンジンは、インデックスの文字から index - 1 の文字まで beginning beginning + length 検索します。 正規表現エンジンが オプションを使用してインスタンス化され、検索が右から左に進む場合、正規表現エンジンはインデックス - 1 の文字からインデックス の 文字を検索 RegexOptions.RightToLeft beginning + length します 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)

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

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

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

戻り値

Match

一致に関する情報を格納しているオブジェクト。

例外

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

input または patternnull です。

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

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」をご覧ください。

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

using System;
using System.Text.RegularExpressions;

public class Example
{
   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個以上の単語文字と一致します。
\b ワード境界で照合を終了します。

注釈

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

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

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

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

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

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

注意 (呼び出し元)

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

こちらもご覧ください

適用対象

Match(String, Int32)

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

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 から始まる文字位置。

戻り値

Match

一致に関する情報を格納しているオブジェクト。

例外

inputnullです。

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

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」をご覧ください。

注釈

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

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

必要に応じて、 パラメーターを使用して、文字列内の開始位置を指定 startat できます。 正規表現エンジンが左から右 (既定値) に解析すると、一致とスキャンは で指定された文字から右に移動します startat 。 正規表現エンジンが右から左に解析すると (正規表現パターンが オプションで構築されている場合)、一致とスキャンは逆方向に移動し、-1 の文字で始まります。 RegexOptions.RightToLeft startat 開始位置を指定しない場合、検索は既定の位置から始 startat まります。 正規表現が左から右に検索される場合、既定の位置は の左端になります。右から左に検索する場合、既定の位置は の右 startat input startat 端になります input

文字列内の特定の文字位置から始まり、正規表現エンジンが文字列の残りの部分をスキャンしないよう一致を制限する場合は、正規表現を (左から右へのパターンの場合は左側、右から左へのパターンの場合は右側) で固定します。 \G これにより、完全に で始まる必要がある一致が制限されます startat

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

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

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

こちらもご覧ください

適用対象

Match(String)

指定した入力文字列内で、Regex コンストラクターで指定された正規表現と最初に一致する対象を 1 つ検索します。

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

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

戻り値

Match

一致に関する情報を格納しているオブジェクト。

例外

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" という単語と、その前にある単語を照合します。 次の表に示すように解釈されます。

Pattern 説明
(\w+) 1 つ以上の単語文字に一致します。 これが最初のキャプチャ グループです。
\s+ 1 つ以上の空白文字と一致します。
社用 リテラル文字列 "car" と一致します。 これが 2 番目のキャプチャ グループです。

注釈

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

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

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

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

こちらもご覧ください

適用対象

Match(String, String)

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

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

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

戻り値

Match

一致に関する情報を格納しているオブジェクト。

例外

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

input または patternnull です。

タイムアウトが発生しました。 タイムアウトの詳細については、「解説」をご覧ください。

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

using System;
using System.Text.RegularExpressions;

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+ 文字の 1 つ以上の出現箇所と一致 z します。
\w* 0、1、または複数の単語文字と一致します。
\b ワード境界で照合を終了します。

注釈

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

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

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

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

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

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

注意 (呼び出し元)

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

こちらもご覧ください

適用対象