Regex.Match メソッド

定義

正規表現パターンと一致する部分文字列の入力文字列を検索し、最初に一致したものを 1 つの Match オブジェクトとして返します。Searches an input string for a substring that matches a regular expression pattern and returns the first occurrence as a single Match object.

オーバーロード

Match(String, String, RegexOptions, TimeSpan)

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

Match(String, Int32, Int32)

入力文字列内の指定した開始位置から開始し、指定した文字数だけを検索対象として、その入力文字列内で正規表現に最初に一致する箇所を検索します。Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position and searching only the specified number of characters.

Match(String, String, RegexOptions)

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

Match(String, Int32)

入力文字列内の指定した開始位置から開始して、その入力文字列内で正規表現に最初に一致する箇所を検索します。Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position in the string.

Match(String)

指定した入力文字列内で、Regex コンストラクターで指定された正規表現と最初に一致する対象を 1 つ検索します。Searches the specified input string for the first occurrence of the regular expression specified in the Regex constructor.

Match(String, String)

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

Match(String, String, RegexOptions, TimeSpan)

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

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

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

pattern
String

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

options
RegexOptions

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

matchTimeout
TimeSpan

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

戻り値

一致に関する情報を格納しているオブジェクト。An object that contains information about the match.

例外

正規表現の解析エラーが発生しました。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.

タイムアウトが発生しました。A time-out occurred. タイムアウトの詳細については、「解説」をご覧ください。For more information about time-outs, see the Remarks section.

注釈

メソッドMatch(String, String, RegexOptions, TimeSpan)は、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。The Match(String, String, RegexOptions, TimeSpan) method returns the first substring that matches a regular expression pattern in an input string. 正規表現パターンの作成に使用される言語要素の詳細については、「正規表現言語-クイックリファレンス」を参照してください。For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

静的Match(String, String, RegexOptions, TimeSpan)メソッドは、 Regex(String, RegexOptions, TimeSpan)コンストラクターを使用しRegexてオブジェクトを構築し、インスタンスMatch(String)メソッドを呼び出すことと同じです。The static Match(String, String, RegexOptions, TimeSpan) method is equivalent to constructing a Regex object with the Regex(String, RegexOptions, TimeSpan) constructor and calling the instance Match(String) method.

パラメーター 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.

返さMatchれたオブジェクトのSuccessプロパティの値をチェックすることにより、正規表現パターンが入力文字列内で見つかったかどうかを確認できます。You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. 一致が見つかった場合、返さMatchれたオブジェクトのValue inputプロパティには、正規表現パターンに一致するの部分文字列が含まれます。If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. 一致するものが見つからない場合、そのString.Empty値はになります。If no match is found, its value is String.Empty.

このメソッドは、正規表現パターンにinput一致するで見つかった最初の部分文字列を返します。This method returns the first substring found in input that matches the regular expression pattern. 返されMatchたオブジェクトのNextMatchメソッドを繰り返し呼び出すことで、後続の一致文字列を取得できます。You can retrieve subsequent matches by repeatedly calling the returned Match object's NextMatch method. また、メソッドをRegex.Matches(String, String, RegexOptions)呼び出すことによって、1回のメソッド呼び出しですべての一致を取得することもできます。You can also retrieve all matches in a single method call by calling the Regex.Matches(String, String, RegexOptions) method.

パラメーター matchTimeoutは、パターン一致メソッドがタイムアウトする前に一致を検索する期間を指定します。タイムアウト間隔を設定すると、過度なバックトラッキングに依存している正規表現が、ほぼ一致する入力を処理するときに応答を停止することを防ぎます。The matchTimeout parameter specifies how long a pattern matching method should try to find a match before it times out. Setting a time-out interval prevents regular expressions that rely on excessive backtracking from appearing to stop responding when they process input that contains near matches. 詳細については、「正規表現とバックトラッキングのベストプラクティス」を参照してください。For more information, see Best Practices for Regular Expressions and Backtracking. この期間内に一致するものが見つからない場合、メソッドはRegexMatchTimeoutException例外をスローします。If no match is found in that time interval, the method throws a RegexMatchTimeoutException exception. matchTimeoutメソッドを実行するアプリケーションドメインに対して定義されている既定のタイムアウト値をオーバーライドします。matchTimeout overrides any default time-out value defined for the application domain in which the method executes.

注意 (呼び出し元)

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.

こちらもご覧ください

Match(String, Int32, Int32)

入力文字列内の指定した開始位置から開始し、指定した文字数だけを検索対象として、その入力文字列内で正規表現に最初に一致する箇所を検索します。Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position and searching only the specified number of characters.

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

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

beginning
Int32

検索対象の左端の位置を定義する、入力文字列内の 0 から始まる文字位置。The zero-based character position in the input string that defines the leftmost position to be searched.

length
Int32

検索に含める部分文字列の文字数。The number of characters in the substring to include in the search.

戻り値

一致に関する情報を格納しているオブジェクト。An object that contains information about the match.

例外

inputnullです。input is null.

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

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

- または --or- beginning+length-1 は、 inputの範囲外の位置を識別します。beginning+length-1 identifies a position that is outside the range of input.

タイムアウトが発生しました。A time-out occurred. タイムアウトの詳細については、「解説」をご覧ください。For more information about time-outs, see the Remarks section.

注釈

メソッドMatch(String, Int32, Int32)は、入力文字列の一部の正規表現パターンに一致する最初の部分文字列を返します。The Match(String, Int32, Int32) method returns the first substring that matches a regular expression pattern in a portion of an input string. 正規表現パターンの作成に使用される言語要素の詳細については、「正規表現言語-クイックリファレンス」を参照してください。For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Match(String, Int32, Int32)メソッドが検索する正規表現パターンは、 Regexクラスコンストラクターのいずれかを呼び出すことによって定義されます。The regular expression pattern for which the Match(String, Int32, 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.

メソッドMatch(String, Int32, Int32)は、正規表現パターンinputのパラメーター beginninglengthパラメーターで定義されたの部分を検索します。The Match(String, Int32, Int32) method searches the portion of input defined by the beginning and length parameters for the regular expression pattern. beginning検索に含める左端の文字のインデックスを常に定義し、検索lengthする最大文字数を定義します。beginning always defines the index of the leftmost character to include in the search, and length defines the maximum number of characters to search. これらの組み合わせによって、検索の範囲が定義されます。Together, they define the range of the search. 検索が左から右 (既定値) に進む場合、正規表現エンジンは、 beginningインデックスの位置にある文字からインデックスbeginning + length -1 の文字まで検索します。If the search proceeds from left to right (the default), the regular expression engine searches from the character at index beginning to the character at index beginning + length - 1. RegexOptions.RightToLeftオプションを使用して正規表現エンジンがインスタンス化され、検索が右から左に進むようにした場合、正規表現エンジンはbeginningインデックス + length -1 の文字からインデックスbeginning位置にある文字。If the regular expression engine was instantiated by using the RegexOptions.RightToLeft option so that the search proceeds from right to left, the regular expression engine searches from the character at index beginning + length - 1 to the character at index beginning. このメソッドは、この範囲内で最初に見つかった一致を返します。This method returns the first match that it finds within this range. 返されMatchたオブジェクトのMatch.NextMatchメソッドを繰り返し呼び出すことで、後続の一致文字列を取得できます。You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method.

返さMatchれたオブジェクトのSuccessプロパティの値をチェックすることにより、正規表現パターンが入力文字列内で見つかったかどうかを確認できます。You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. 一致が見つかった場合、返さMatchれたオブジェクトのValue inputプロパティには、正規表現パターンに一致するの部分文字列が含まれます。If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. 一致するものが見つからない場合、そのString.Empty値はになります。If no match is found, its value is String.Empty.

この例外は、一致操作の実行時間が、 Regex.Regex(String, RegexOptions, TimeSpan)コンストラクターで指定されたタイムアウト時間を超えた場合にスローされます。 RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. コンストラクターを呼び出すときにタイムアウト値を設定しなかった場合は、 Regexオブジェクトが作成されたアプリケーションドメインに対して設定されたタイムアウト値を操作が超えた場合に、例外がスローされます。If you do not set a time-out value when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Regexコンストラクター呼び出しまたはアプリケーションドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値がRegex.InfiniteMatchTimeoutの場合、例外はスローされません。If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

こちらもご覧ください

Match(String, String, RegexOptions)

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

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

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

pattern
String

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

options
RegexOptions

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

戻り値

一致に関する情報を格納しているオブジェクト。An object that contains information about the match.

例外

正規表現の解析エラーが発生しました。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.

タイムアウトが発生しました。A time-out occurred. タイムアウトの詳細については、「解説」をご覧ください。For more information about time-outs, see the Remarks section.

次の例では、文字 "a" で始まる単語と一致する正規表現を定義しています。The following example defines a regular expression that matches words beginning with the letter "a". RegexOptions.IgnoreCaseオプションを使用して、正規表現が大文字の "a" と小文字の "a" で始まる単語を検索するようにします。It uses the RegexOptions.IgnoreCase option to ensure that the regular expression locates words beginning with both an uppercase "a" and a lowercase "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 の解釈を次の表に示します。The regular expression pattern \ba\w*\b is interpreted as shown in the following table.

パターンPattern 説明Description
\b ワード境界から照合を開始します。Begin the match at a word boundary.
a 文字 "a" と一致します。Match the character "a".
\w* 0個以上の単語文字と一致します。Match zero, one, or more word characters.
\b ワード境界で照合を終了します。End the match at a word boundary.

注釈

メソッドMatch(String, String, RegexOptions)は、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。The Match(String, String, RegexOptions) method returns the first substring that matches a regular expression pattern in an input string. 正規表現パターンの作成に使用される言語要素の詳細については、「正規表現言語-クイックリファレンス」を参照してください。For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

静的Match(String, String, RegexOptions)メソッドは、 Regex(String, RegexOptions)コンストラクターを使用しRegexてオブジェクトを構築し、インスタンスMatch(String)メソッドを呼び出すことと同じです。The static Match(String, String, RegexOptions) method is equivalent to constructing a Regex object with the Regex(String, RegexOptions) constructor and calling the instance Match(String) method.

パラメーター 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.

返さMatchれたオブジェクトのSuccessプロパティの値をチェックすることにより、正規表現パターンが入力文字列内で見つかったかどうかを確認できます。You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. 一致が見つかった場合、返さMatchれたオブジェクトのValue inputプロパティには、正規表現パターンに一致するの部分文字列が含まれます。If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. 一致するものが見つからない場合、そのString.Empty値はになります。If no match is found, its value is String.Empty.

このメソッドは、正規表現パターンにinput一致するで見つかった最初の部分文字列を返します。This method returns the first substring found in input that matches the regular expression pattern. 返されMatchたオブジェクトのNextMatchメソッドを繰り返し呼び出すことで、後続の一致文字列を取得できます。You can retrieve subsequent matches by repeatedly calling the returned Match object's NextMatch method. また、メソッドをRegex.Matches(String, String, RegexOptions)呼び出すことによって、1回のメソッド呼び出しですべての一致を取得することもできます。You can also retrieve all matches in a single method call by calling the Regex.Matches(String, String, RegexOptions) method.

このRegexMatchTimeoutException例外は、一致操作の実行時間が、メソッドが呼び出されたアプリケーションドメインに指定されたタイムアウト期間を超えた場合にスローされます。The RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified for the application domain in which the method is called. アプリケーションドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値がRegex.InfiniteMatchTimeoutの場合は、例外はスローされません。If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

注意 (呼び出し元)

このメソッドは、呼び出されたアプリケーションドメインの既定のタイムアウト値と同じ間隔の後にタイムアウトします。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. パターンマッチを取得するために推奨されるMatch(String, String)静的メソッドはです。これにより、タイムアウト間隔を設定できます。The recommended static method for retrieving a pattern match is Match(String, String), which lets you set the time-out interval.

こちらもご覧ください

Match(String, Int32)

入力文字列内の指定した開始位置から開始して、その入力文字列内で正規表現に最初に一致する箇所を検索します。Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position in the string.

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

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

startat
Int32

検索を開始する 0 から始まる文字位置。The zero-based character position at which to start the search.

戻り値

一致に関する情報を格納しているオブジェクト。An object that contains information about the match.

例外

inputnullです。input is null.

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

タイムアウトが発生しました。A time-out occurred. タイムアウトの詳細については、「解説」をご覧ください。For more information about time-outs, see the Remarks section.

注釈

メソッドMatch(String, Int32)は、入力文字列内の文字位置のstartat先頭または末尾にある正規表現パターンに一致する最初の部分文字列を返します。The Match(String, Int32) method returns the first substring that matches a regular expression pattern, starting at or after the startat character position, in an input string. 正規表現パターンの作成に使用される言語要素の詳細については、「正規表現言語-クイックリファレンス」を参照してください。For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Match(String, Int32)メソッドが検索する正規表現パターンは、 Regexクラスコンストラクターのいずれかを呼び出すことによって定義されます。The regular expression pattern for which the Match(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.

必要に応じて、 startatパラメーターを使用して、文字列内の開始位置を指定することもできます。You can optionally specify a starting position in the string by using the startat parameter. 正規表現エンジンが左から右 (既定値) から解析を行う場合、一致とスキャンはでstartat指定された文字を開始位置として右方向に移動します。When the regular expression engine parses from left to right (the default), the match and the scan move rightward, starting at the character specified in startat. 正規表現エンジンが右から左 ( RegexOptions.RightToLeftオプションを使用して正規表現パターンを作成したとき) に解析を行うと、一致とスキャンが反対方向に移動し、先頭がstartat -1 の文字で始まります。When the regular expression engine parses from right to left (when the regular expression pattern is constructed with the RegexOptions.RightToLeft option), the match and scan move in the opposite direction and begin with the character at startat -1. 開始位置を指定しない場合、検索は既定startatの位置から開始されます。If you do not specify a starting position, the search begins at the default startat position. 正規表現が左から右に向かって検索する場合startat 、既定の位置はのinput左端になります。右から左に検索したstartat場合、既定の位置はのinput右端になります。If the regular expression searches from left to right, the default startat position is at the left end of input; if it searches from right to left, the default startat position is at the right end of input.

一致を制限して、文字列内の特定の文字位置から開始するようにし、正規表現エンジンが一致文字列の残りの部分をスキャンしないようにするには、 \G (左から右へ) を使用して正規表現を固定します。パターン、または右から左に記述するパターンの右側にあります)。If you want to restrict a match so that it begins at a particular character position in the string and the regular expression engine does not scan the remainder of the string for a match, anchor the regular expression with a \G (at the left for a left-to-right pattern, or at the right for a right-to-left pattern). これにより一致が制限されるため、 startatを正確に開始する必要があります。This restricts the match so it must start exactly at startat.

返さMatchれたオブジェクトのSuccessプロパティの値をチェックすることにより、正規表現パターンが入力文字列内で見つかったかどうかを確認できます。You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. 一致が見つかった場合、返さMatchれたオブジェクトのValue inputプロパティには、正規表現パターンに一致するの部分文字列が含まれます。If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. 一致するものが見つからない場合、そのString.Empty値はになります。If no match is found, its value is String.Empty.

このメソッドは、正規表現パターンに一致するのstartat input文字位置の最初または後に見つかった最初の部分文字列を返します。This method returns the first substring found at or after the startat character position in input that matches the regular expression pattern. 返されMatchたオブジェクトのMatch.NextMatchメソッドを繰り返し呼び出すことで、後続の一致文字列を取得できます。You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method. また、メソッドをRegex.Matches(String, Int32)呼び出すことによって、1回のメソッド呼び出しですべての一致を取得することもできます。You can also retrieve all matches in a single method call by calling the Regex.Matches(String, Int32) method.

この例外は、一致操作の実行時間が、 Regex.Regex(String, RegexOptions, TimeSpan)コンストラクターで指定されたタイムアウト時間を超えた場合にスローされます。 RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. コンストラクターを呼び出すときにタイムアウト間隔を設定しなかった場合は、 Regexオブジェクトが作成されたアプリケーションドメインに対して設定されたタイムアウト値を操作が超えた場合に、例外がスローされます。If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Regexコンストラクター呼び出しまたはアプリケーションドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値がRegex.InfiniteMatchTimeoutの場合、例外はスローされません。If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

こちらもご覧ください

Match(String)

指定した入力文字列内で、Regex コンストラクターで指定された正規表現と最初に一致する対象を 1 つ検索します。Searches the specified input string for the first occurrence of the regular expression specified in the Regex constructor.

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

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

戻り値

一致に関する情報を格納しているオブジェクト。An object that contains information about the match.

例外

inputnull です。input is null.

タイムアウトが発生しました。A time-out occurred. タイムアウトの詳細については、「解説」をご覧ください。For more information about time-outs, see the Remarks section.

次の例では、文字列内の正規表現パターン一致を検索し、一致したグループ、キャプチャ、およびキャプチャ位置を一覧表示します。The following example finds regular expression pattern matches in a string, then lists the matched groups, captures, and capture positions.

#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" という単語と、その前にある単語を照合します。The regular expression pattern (\w+)\s+(car) matches occurrences of the word "car" along with the word that precedes it. 次の表に示すように解釈されます。It is interpreted as shown in the following table.

パターンPattern 説明Description
(\w+) 1 つ以上の単語文字に一致します。Match one or more word characters. これが最初のキャプチャ グループです。This is the first capturing group.
\s+ 1個以上の空白文字と一致します。Match one or more white-space characters.
社用(car) リテラル文字列 "car" と一致します。Match the literal string "car". これが 2 番目のキャプチャ グループです。This is the second capturing group.

注釈

メソッドMatch(String)は、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。The Match(String) method returns the first substring that matches a regular expression pattern in an input string. 正規表現パターンの作成に使用される言語要素の詳細については、「正規表現言語-クイックリファレンス」を参照してください。For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

返さMatchれたオブジェクトのSuccessプロパティの値をチェックすることにより、正規表現パターンが入力文字列内で見つかったかどうかを確認できます。You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. 一致が見つかった場合、返さMatchれたオブジェクトのValue inputプロパティには、正規表現パターンに一致するの部分文字列が含まれます。If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. 一致するものが見つからない場合、そのString.Empty値はになります。If no match is found, its value is String.Empty.

このメソッドは、正規表現パターンinputに一致するの最初の部分文字列を返します。This method returns the first substring in input that matches the regular expression pattern. 返されMatchたオブジェクトのMatch.NextMatchメソッドを繰り返し呼び出すことで、後続の一致文字列を取得できます。You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method. また、メソッドをRegex.Matches(String)呼び出すことによって、1回のメソッド呼び出しですべての一致を取得することもできます。You can also retrieve all matches in a single method call by calling the Regex.Matches(String) method.

この例外は、一致操作の実行時間が、 Regex.Regex(String, RegexOptions, TimeSpan)コンストラクターで指定されたタイムアウト時間を超えた場合にスローされます。 RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. コンストラクターを呼び出すときにタイムアウト間隔を設定しなかった場合は、 Regexオブジェクトが作成されたアプリケーションドメインに対して設定されたタイムアウト値を操作が超えた場合に、例外がスローされます。If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Regexコンストラクター呼び出しまたはアプリケーションドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値がRegex.InfiniteMatchTimeoutの場合、例外はスローされません。If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

こちらもご覧ください

Match(String, String)

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

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

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

pattern
String

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

戻り値

一致に関する情報を格納しているオブジェクト。An object that contains information about the match.

例外

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

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

タイムアウトが発生しました。A time-out occurred. タイムアウトの詳細については、「解説」をご覧ください。For more information about time-outs, see the Remarks section.

次の例ではMatch(String, String) 、メソッドを呼び出して、少なくとも1つzの文字を含む最初のMatch.NextMatch単語を検索し、メソッドを呼び出して、その他の一致を検索します。The following example calls the Match(String, String) method to find the first word that contains at least one z character, and then calls the Match.NextMatch method to find any additional matches.

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 の解釈を次の表に示します。The regular expression pattern \b\w*z+\w*\b is interpreted as shown in the following table.

パターンPattern 説明Description
\b ワード境界から照合を開始します。Begin the match at a word boundary.
\w* 0個以上の単語文字と一致します。Match zero, one, or more word characters.
z+ z文字の1回以上の出現と一致します。Match one or more occurrences of the z character.
\w* 0個以上の単語文字と一致します。Match zero, one, or more word characters.
\b ワード境界で照合を終了します。End the match at a word boundary.

注釈

メソッドMatch(String, String)は、入力文字列の正規表現パターンに一致する最初の部分文字列を返します。The Match(String, String) method returns the first substring that matches a regular expression pattern in an input string. 正規表現パターンの作成に使用される言語要素の詳細については、「正規表現言語-クイックリファレンス」を参照してください。For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

静的Match(String, String)メソッドは、指定されたRegex正規表現パターンを使用してオブジェクトを構築しMatch(String) 、インスタンスメソッドを呼び出すことと同じです。The static Match(String, String) method is equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance Match(String) method. この場合、正規表現エンジンは正規表現パターンをキャッシュします。In this case, the regular expression engine caches the regular expression pattern.

パラメーター 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.

返さMatchれたオブジェクトのSuccessプロパティの値をチェックすることにより、正規表現パターンが入力文字列内で見つかったかどうかを確認できます。You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. 一致が見つかった場合、返さMatchれたオブジェクトのValue inputプロパティには、正規表現パターンに一致するの部分文字列が含まれます。If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. 一致するものが見つからない場合、そのString.Empty値はになります。If no match is found, its value is String.Empty.

このメソッドは、正規表現パターンinputに一致するの最初の部分文字列を返します。This method returns the first substring in input that matches the regular expression pattern. 返されMatchたオブジェクトのMatch.NextMatchメソッドを繰り返し呼び出すことで、後続の一致文字列を取得できます。You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method. また、メソッドをRegex.Matches(String, String)呼び出すことによって、1回のメソッド呼び出しですべての一致を取得することもできます。You can also retrieve all matches in a single method call by calling the Regex.Matches(String, String) method.

このRegexMatchTimeoutException例外は、一致操作の実行時間が、メソッドが呼び出されたアプリケーションドメインに指定されたタイムアウト期間を超えた場合にスローされます。The RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified for the application domain in which the method is called. アプリケーションドメインのプロパティでタイムアウトが定義されていない場合、またはタイムアウト値がRegex.InfiniteMatchTimeoutの場合は、例外はスローされません。If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

注意 (呼び出し元)

このメソッドは、呼び出されたアプリケーションドメインの既定のタイムアウト値と同じ間隔の後にタイムアウトします。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. パターンマッチを取得するために推奨されるMatch(String, String)静的メソッドはです。これにより、タイムアウト間隔を設定できます。The recommended static method for retrieving a pattern match is Match(String, String), which lets you set the time-out interval.

こちらもご覧ください

適用対象