Regex.IsMatch メソッド

定義

正規表現と一致する対象が入力文字列内で見つかったかどうかを示します。Indicates whether the regular expression finds a match in the input string.

オーバーロード

IsMatch(String)

Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.

IsMatch(String, Int32)

入力文字列内の指定した位置から検索を開始して、Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the regular expression specified in the Regex constructor finds a match in the specified input string, beginning at the specified starting position in the string.

IsMatch(String, String)

指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the specified regular expression finds a match in the specified input string.

IsMatch(String, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options.

IsMatch(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options and time-out interval.

IsMatch(String)

Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.

public:
 bool IsMatch(System::String ^ input);
public bool IsMatch (string input);
member this.IsMatch : string -> bool
Public Function IsMatch (input As String) As Boolean

パラメーター

input
String

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。true if the regular expression finds a match; otherwise, false.

例外

inputnullです。input is null.

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

次の例は、IsMatch(String) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。The following example illustrates the use of the IsMatch(String) method to determine whether a string is a valid part number. 正規表現では、パーツ番号は、ハイフンで区切られた3つの文字セットで構成される特定の形式を持つことを前提としています。The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. 4つの文字を含む最初のセットは、英数字の後に英数字が続く2つの数字で構成されている必要があります。The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. 2つの文字で構成される2番目のセットは数値である必要があります。The second set, which consists of three characters, must be numeric. 4つの文字で構成される3番目のセットには、3つの数字と英数字が続く必要があります。The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468A", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      Regex rgx = new Regex(@"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
      foreach (string partNumber in partNumbers)
         Console.WriteLine("{0} {1} a valid part number.", 
                           partNumber, 
                           rgx.IsMatch(partNumber) ? "is" : "is not");
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468A is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim rgx As New Regex("^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(rgx.IsMatch(partNumber), "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468A is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

正規表現パターンは次のとおりです。The regular expression pattern is:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$  

次の表に、正規表現パターンがどのように解釈されるかを示します。The following table shows how the regular expression pattern is interpreted.

パターンPattern 説明Description
^ 行の先頭から照合を開始します。Begin the match at the beginning of the line.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
\d{2} 2つの数字と一致します。Match two numeric characters.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
- ハイフンと一致します。Match a hyphen.
\d{3} 3個の数字と正確に一致します。Match exactly three numeric characters.
(-\d{3}){2} ハイフンの後に3桁の数字を入力し、このパターンの2回の出現を一致させます。Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
$ 行の末尾で照合を終了します。End the match at the end of the line.

注釈

IsMatch メソッドは、通常、文字列を検証したり、文字列が後続の操作のためにその文字列を取得せずに特定のパターンに準拠していることを確認したりするために使用されます。The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. 1つ以上の文字列が正規表現パターンに一致するかどうかを判断し、後続の操作のためにそれらを取得する必要がある場合は、Match または Matches メソッドを呼び出します。If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

RegexMatchTimeoutException 例外は、一致操作の実行時間が、Regex.Regex(String, RegexOptions, TimeSpan) コンストラクターによって指定されたタイムアウト期間を超えた場合にスローされます。The 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.

こちらもご覧ください

IsMatch(String, Int32)

入力文字列内の指定した位置から検索を開始して、Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the regular expression specified in the Regex constructor finds a match in the specified input string, beginning at the specified starting position in the string.

public:
 bool IsMatch(System::String ^ input, int startat);
public bool IsMatch (string input, int startat);
member this.IsMatch : string * int -> bool
Public Function IsMatch (input As String, startat As Integer) As Boolean

パラメーター

input
String

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

startat
Int32

検索を開始する文字の位置。The character position at which to start the search.

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。true if the regular expression finds a match; otherwise, false.

例外

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.

次の例は、IsMatch(String, Int32) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。The following example illustrates the use of the IsMatch(String, Int32) method to determine whether a string is a valid part number. コロンの後に続く部分番号を検索します (:)文字列内の文字。It searches for a part number that follows a colon (:) character in a string. IndexOf(Char) メソッドは、IsMatch(String, Int32) メソッドに渡されるコロン文字の位置を決定するために使用されます。The IndexOf(Char) method is used to determine the position of the colon character, which is then passed to the IsMatch(String, Int32) method. 正規表現では、パーツ番号は、ハイフンで区切られた3つの文字セットで構成される特定の形式を持つことを前提としています。The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. 4つの文字を含む最初のセットは、英数字の後に英数字が続く2つの数字で構成されている必要があります。The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. 2つの文字で構成される2番目のセットは数値である必要があります。The second set, which consists of three characters, must be numeric. 4つの文字で構成される3番目のセットには、3つの数字と英数字が続く必要があります。The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", 
                              "_A90-123-129X", "123K-000-1230", 
                              "SKU: 0919-2893-1256" };
      Regex rgx = new Regex(@"[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
      foreach (string partNumber in partNumbers)
      {
         int start = partNumber.IndexOf(':');
         if (start >= 0)
         {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              rgx.IsMatch(partNumber, start) ? "is" : "is not");
         }
         else
         {
            Console.WriteLine("Cannot find starting position in {0}.", partNumber);
         }
      }
   }
}
// The example displays the following output:
//       Part Number: 1298-673-4192 is a valid part number.
//       Part No: A08Z-931-468A is a valid part number.
//       Cannot find starting position in _A90-123-129X.
//       Cannot find starting position in 123K-000-1230.
//       SKU: 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", _
                                      "_A90-123-129X", "123K-000-1230", _
                                      "SKU: 0919-2893-1256" }
      Dim rgx As New Regex("[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
      For Each partNumber As String In partNumbers
         Dim start As Integer = partNumber.IndexOf(":"c)
         If start >= 0 Then 
            Console.WriteLine("{0} {1} a valid part number.", _
                              partNumber, _
                              IIF(rgx.IsMatch(partNumber, start), "is", "is not"))
         Else
            Console.WriteLine("Cannot find starting position in {0}.", partNumber)
         End If                              
      Next
   End Sub
End Module
' The example displays the following output:
'       Part Number: 1298-673-4192 is a valid part number.
'       Part No: A08Z-931-468A is a valid part number.
'       Cannot find starting position in _A90-123-129X.
'       Cannot find starting position in 123K-000-1230.
'       SKU: 0919-2893-1256 is not a valid part number.

正規表現パターンは次のとおりです。The regular expression pattern is:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$  

次の表に、正規表現パターンがどのように解釈されるかを示します。The following table shows how the regular expression pattern is interpreted.

パターンPattern 説明Description
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
\d{2} 2つの数字と一致します。Match two numeric characters.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
- ハイフンと一致します。Match a hyphen.
\d{3} 3個の数字と正確に一致します。Match exactly three numeric characters.
(-\d{3}){2} ハイフンの後に3桁の数字を入力し、このパターンの2回の出現を一致させます。Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
$ 行の末尾で照合を終了します。End the match at the end of the line.

注釈

IsMatch メソッドは、通常、文字列を検証したり、文字列が後続の操作のためにその文字列を取得せずに特定のパターンに準拠していることを確認したりするために使用されます。The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. 1つ以上の文字列が正規表現パターンに一致するかどうかを判断し、後続の操作のためにそれらを取得する必要がある場合は、Match または Matches メソッドを呼び出します。If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

RegexMatchTimeoutException 例外は、一致操作の実行時間が、Regex.Regex(String, RegexOptions, TimeSpan) コンストラクターによって指定されたタイムアウト期間を超えた場合にスローされます。The 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.

こちらもご覧ください

IsMatch(String, String)

指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the specified regular expression finds a match in the specified input string.

public:
 static bool IsMatch(System::String ^ input, System::String ^ pattern);
public static bool IsMatch (string input, string pattern);
static member IsMatch : string * string -> bool
Public Shared Function IsMatch (input As String, pattern As String) As Boolean

パラメーター

input
String

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

pattern
String

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。true if the regular expression finds a match; otherwise, false.

例外

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

次の例は、IsMatch(String, String) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。The following example illustrates the use of the IsMatch(String, String) method to determine whether a string is a valid part number. 正規表現では、パーツ番号は、ハイフンで区切られた3つの文字セットで構成される特定の形式を持つことを前提としています。The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. 4つの文字を含む最初のセットは、英数字の後に英数字が続く2つの数字で構成されている必要があります。The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. 2つの文字で構成される2番目のセットは数値である必要があります。The second set, which consists of three characters, must be numeric. 4つの文字で構成される3番目のセットには、3つの数字と英数字が続く必要があります。The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468A", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      string pattern = @"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$";
      foreach (string partNumber in partNumbers)
         Console.WriteLine("{0} {1} a valid part number.", 
                           partNumber, 
                           Regex.IsMatch(partNumber, pattern) ? "is" : "is not");
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468A is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim pattern As String = "^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$"
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(Regex.IsMatch(partNumber, pattern), "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468A is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

正規表現パターンは次のとおりです。The regular expression pattern is:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$  

次の表に、正規表現パターンがどのように解釈されるかを示します。The following table shows how the regular expression pattern is interpreted.

パターンPattern 説明Description
^ 行の先頭から照合を開始します。Begin the match at the beginning of the line.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
\d{2} 2つの数字と一致します。Match two numeric characters.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
- ハイフンと一致します。Match a hyphen.
\d{3} 3個の数字と正確に一致します。Match exactly three numeric characters.
(-\d{3}){2} ハイフンの後に3桁の数字を入力し、このパターンの2回の出現を一致させます。Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[a-zA-Z0-9] 1つの英文字 (a z または A から Z) または数字文字に一致します。Match a single alphabetic character (a through z or A through Z) or numeric character.
$ 行の末尾で照合を終了します。End the match at the end of the line.

注釈

IsMatch メソッドは、通常、文字列を検証したり、文字列が後続の操作のためにその文字列を取得せずに特定のパターンに準拠していることを確認したりするために使用されます。The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. 1つ以上の文字列が正規表現パターンに一致するかどうかを判断し、後続の操作のためにそれらを取得する必要がある場合は、Match または Matches メソッドを呼び出します。If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

静的 IsMatch(String, String) メソッドは、pattern によって指定された正規表現パターンを使用して Regex オブジェクトを構築し、IsMatch(String) インスタンスメソッドを呼び出すことと同じです。The static IsMatch(String, String) method is equivalent to constructing a Regex object with the regular expression pattern specified by pattern and calling the IsMatch(String) instance method. この正規表現パターンは、正規表現エンジンによる迅速な取得のためにキャッシュされます。This regular expression pattern is cached for rapid retrieval by the regular expression engine.

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.

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 the method 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. パターン一致を確認するための推奨される静的メソッドは IsMatch(String, String, RegexOptions, TimeSpan)であり、タイムアウト間隔を設定できます。The recommended static method for verifying a pattern match is IsMatch(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

こちらもご覧ください

IsMatch(String, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options.

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

パラメーター

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.

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。true if the regular expression finds a match; otherwise, false.

例外

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

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

options は有効な RegexOptions 値ではありません。options is not a valid RegexOptions value.

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

次の例は、IsMatch(String, String) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。The following example illustrates the use of the IsMatch(String, String) method to determine whether a string is a valid part number. 正規表現では、パーツ番号は、ハイフンで区切られた3つの文字セットで構成される特定の形式を持つことを前提としています。The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. 4つの文字を含む最初のセットは、英数字の後に英数字が続く2つの数字で構成されている必要があります。The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. 2つの文字で構成される2番目のセットは数値である必要があります。The second set, which consists of three characters, must be numeric. 4つの文字で構成される3番目のセットには、3つの数字と英数字が続く必要があります。The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468a", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
      foreach (string partNumber in partNumbers)
         Console.WriteLine("{0} {1} a valid part number.", 
                           partNumber, 
                           Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) 
                                         ? "is" : "is not");
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468a is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
                               "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468a is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

正規表現パターンは次のとおりです。The regular expression pattern is:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$  

次の表に、正規表現パターンがどのように解釈されるかを示します。The following table shows how the regular expression pattern is interpreted.

パターンPattern 説明Description
^ 文字列の先頭から照合を開始します。Begin the match at the beginning of the string.
[A-Z0-9] A の任意の1文字と Z、または任意の数字に一致します。Match any single alphabetic character from A through Z, or any numeric character.
\d{2} 2つの数字と一致します。Match two numeric characters.
[A-Z0-9] A の任意の1文字と Z、または任意の数字に一致します。Match any single alphabetic character from A through Z, or any numeric character.
- ハイフンと一致します。Match a hyphen.
\d{3} 3個の数字と正確に一致します。Match exactly three numeric characters.
(-\d{3}){2} ハイフンの後に3桁の数字を入力し、このパターンの2回の出現を一致させます。「」を参照してください。Find a hyphen followed by three numeric characters, and match two occurrences of this pattern..
[A-Z0-9] A の任意の1文字と Z、または任意の数字に一致します。Match any single alphabetic character from A through Z, or any numeric character.
$ 入力文字列の末尾で照合を終了します。End the match at the end of the string.

options パラメーターを RegexOptions.IgnoreCase に設定して IsMatch(String, String, RegexOptions) メソッドを呼び出すことは、次の正規表現を定義することと同じです。Calling the IsMatch(String, String, RegexOptions) method with the options parameter set to RegexOptions.IgnoreCase is equivalent to defining the following regular expression:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]  

比較については、IsMatch(String, String) メソッドの例を参照してください。For comparison, see the example for the IsMatch(String, String) method.

注釈

IsMatch メソッドは、通常、文字列を検証したり、文字列が後続の操作のためにその文字列を取得せずに特定のパターンに準拠していることを確認したりするために使用されます。The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. 1つ以上の文字列が正規表現パターンに一致するかどうかを判断し、後続の操作のためにそれらを取得する必要がある場合は、Match または Matches メソッドを呼び出します。If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

静的な IsMatch(String, String, RegexOptions) メソッドは、pattern で指定された正規表現パターンを使用して Regex オブジェクトを構築し、options で指定された正規表現のオプションと IsMatch(String) インスタンスメソッドを呼び出すことと同じです。The static IsMatch(String, String, RegexOptions) method is equivalent to constructing a Regex object with the regular expression pattern specified by pattern and the regular expression options specified by options and calling the IsMatch(String) instance method. この正規表現パターンは、正規表現エンジンによる迅速な取得のためにキャッシュされます。This regular expression pattern is cached for rapid retrieval by the regular expression engine.

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.

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. パターン一致を確認するための推奨される静的メソッドは IsMatch(String, String, RegexOptions, TimeSpan)であり、タイムアウト間隔を設定できます。The recommended static method for verifying a pattern match is IsMatch(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

こちらもご覧ください

IsMatch(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options and time-out interval.

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

パラメーター

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.

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。true if the regular expression finds a match; otherwise, false.

例外

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

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

options は有効な RegexOptions 値ではありません。options is not a valid RegexOptions value.

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

タイムアウトが発生しました。A time-out occurred.

次の例は、IsMatch(String, String, RegexOptions, TimeSpan) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。The following example illustrates the use of the IsMatch(String, String, RegexOptions, TimeSpan) method to determine whether a string is a valid part number. 正規表現では、パーツ番号は、ハイフンで区切られた3つの文字セットで構成される特定の形式を持つことを前提としています。The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. 4つの文字を含む最初のセットは、英数字の後に英数字が続く2つの数字で構成されている必要があります。The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. 2つの文字で構成される2番目のセットは数値である必要があります。The second set, which consists of three characters, must be numeric. 4つの文字で構成される3番目のセットには、3つの数字と英数字が続く必要があります。The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character. 正規表現パターンに一致させるには、入力文字列の検索を最小限にする必要があるため、メソッドはタイムアウト間隔を500ミリ秒に設定します。Matching the regular expression pattern should involve minimal searching through the input string, so the method sets a time-out interval of 500 milliseconds.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468a", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
      foreach (string partNumber in partNumbers)
         try {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) 
                                            ? "is" : "is not", TimeSpan.FromMilliseconds(500));
         }
         catch (RegexMatchTimeoutException e) {
            Console.WriteLine("Timeout after {0} seconds matching {1}.",
                              e.MatchTimeout, e.Input);
         }
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468a is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a", 
                                      "_A90-123-129X", "12345-KKA-1230", 
                                      "0919-2893-1256" }
      Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
      For Each partNumber As String In partNumbers
         Try
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, _
                              IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
                                  "is", "is not"),
                              TimeSpan.FromMilliseconds(500))
         Catch e As RegexMatchTimeoutException
            Console.WriteLine("Timeout after {0} seconds matching {1}.",
                              e.MatchTimeout, e.Input)
         End Try
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468a is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

正規表現パターンは次のとおりです。The regular expression pattern is:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$  

次の表に、正規表現パターンがどのように解釈されるかを示します。The following table shows how the regular expression pattern is interpreted.

パターンPattern 説明Description
^ 文字列の先頭から照合を開始します。Begin the match at the beginning of the string.
[A-Z0-9] A の任意の1文字と Z、または任意の数字に一致します。Match any single alphabetic character from A through Z, or any numeric character.
\d{2} 2つの数字と一致します。Match two numeric characters.
[A-Z0-9] A の任意の1文字と Z、または任意の数字に一致します。Match any single alphabetic character from A through Z, or any numeric character.
- ハイフンと一致します。Match a hyphen.
\d{3} 3個の数字と正確に一致します。Match exactly three numeric characters.
(-\d{3}){2} ハイフンの後に3桁の数字を入力し、このパターンの2回の出現を一致させます。Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[A-Z0-9] A の任意の1文字と Z、または任意の数字に一致します。Match any single alphabetic character from A through Z, or any numeric character.
$ 入力文字列の末尾で照合を終了します。End the match at the end of the string.

options パラメーターを RegexOptions.IgnoreCase に設定して IsMatch(String, String, RegexOptions, TimeSpan) メソッドを呼び出すことは、次の正規表現を定義することと同じです。Calling the IsMatch(String, String, RegexOptions, TimeSpan) method with the options parameter set to RegexOptions.IgnoreCase is equivalent to defining the following regular expression:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]  

比較については、IsMatch(String, String) メソッドの例を参照してください。For comparison, see the example for the IsMatch(String, String) method.

注釈

IsMatch メソッドは、通常、文字列を検証したり、文字列が後続の操作のためにその文字列を取得せずに特定のパターンに準拠していることを確認したりするために使用されます。The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. 1つ以上の文字列が正規表現パターンに一致するかどうかを判断し、後続の操作のためにそれらを取得する必要がある場合は、Match または Matches メソッドを呼び出します。If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

静的な IsMatch(String, String, RegexOptions, TimeSpan) メソッドは、pattern で指定された正規表現パターンを使用して Regex オブジェクトを構築し、options で指定された正規表現のオプションと IsMatch(String) インスタンスメソッドを呼び出すことと同じです。The static IsMatch(String, String, RegexOptions, TimeSpan) method is equivalent to constructing a Regex object with the regular expression pattern specified by pattern and the regular expression options specified by options and calling the IsMatch(String) instance method. この正規表現パターンは、正規表現エンジンによる迅速な取得のためにキャッシュされます。This regular expression pattern is cached for rapid retrieval by the regular expression engine.

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.

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.

こちらもご覧ください

適用対象