Regex.IsMatch メソッド

定義

正規表現と一致する対象が入力文字列内で見つかったかどうかを示します。

オーバーロード

IsMatch(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現が指定した入力範囲で一致を検出するかどうかを示します。

IsMatch(String, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現が指定した入力範囲で一致を検出するかどうかを示します。

IsMatch(String, String)

指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(ReadOnlySpan<Char>, String)

指定した正規表現が、指定した入力スパンで一致するものを見つけるかどうかを示します。

IsMatch(ReadOnlySpan<Char>, Int32)

Regex コンストラクターで指定された正規表現が、指定した入力スパンで一致するものを見つけるかどうかを示します。

IsMatch(String)

Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(ReadOnlySpan<Char>)

Regex コンストラクターで指定された正規表現が、指定した入力スパンで一致するものを見つけるかどうかを示します。

IsMatch(String, Int32)

入力文字列内の指定した位置から検索を開始して、Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

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

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

pattern
String

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

options
RegexOptions

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

matchTimeout
TimeSpan

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

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

input または patternnull です。

options は正しい RegexOptions 値ではありません。

- または -

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

タイムアウトが発生しました。

次の例は、 メソッドを使用して、 IsMatch(String, String, RegexOptions, TimeSpan) 文字列が有効な部分番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、英数字と 2 つの数字の後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 3 番目のセットは 4 文字で構成され、3 つの数字の後に英数字が続く必要があります。 正規表現パターンの照合には、入力文字列の検索を最小限に抑える必要があるため、メソッドはタイムアウト間隔を 500 ミリ秒に設定します。

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.

正規表現パターンは次のとおりです。

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

次の表に、正規表現パターンがどのように解釈されるかを示します。

パターン 説明
^ 文字列の先頭から照合を開始します。
[A-Z0-9] から までの任意の 1 つのアルファベット文字AZ、または任意の数字と一致します。
\d{2} 2 つの数字と一致します。
[A-Z0-9] から までの任意の 1 つのアルファベット文字AZ、または任意の数字と一致します。
- ハイフンと一致します。
\d{3} 正確に 3 つの数字と一致します。
(-\d{3}){2} ハイフンと 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[A-Z0-9] から までの任意の 1 つのアルファベット文字AZ、または任意の数字と一致します。
$ 入力文字列の末尾で照合を終了します。

パラメーターを IsMatch(String, String, RegexOptions, TimeSpan)RegexOptions.IgnoreCase設定して メソッドをoptions呼び出すことは、次の正規表現を定義することと同じです。

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

比較については、 メソッドの例を IsMatch(String, String) 参照してください。

注釈

メソッドは IsMatch 通常、文字列を検証したり、後続の操作のためにその文字列を取得せずに文字列が特定のパターンに準拠していることを確認したりするために使用されます。 1 つ以上の文字列が正規表現パターンと一致するかどうかを判断し、後続の操作のためにそれらを取得する場合は、 メソッドまたは Matches メソッドをMatch呼び出します。

静的IsMatch(String, String, RegexOptions, TimeSpan)メソッドは、 で指定された正規表現パターンと、 でpattern指定されたoptions正規表現オプションを使用して オブジェクトを構築Regexし、 インスタンス メソッドをIsMatch(String)呼び出すことと同じです。 この正規表現パターンは、正規表現エンジンによって迅速に取得するためにキャッシュされます。

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

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

注意 (呼び出し元)

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

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

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

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

こちらもご覧ください

適用対象

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現が指定した入力範囲で一致を検出するかどうかを示します。

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

パラメーター

input
ReadOnlySpan<Char>

一致を検索するスパン。

pattern
String

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

options
RegexOptions

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

matchTimeout
TimeSpan

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

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

patternnull です

タイムアウトが発生しました。

options が有効 RegexOptions な値に含まれていないか matchTimeout 、負の値、ゼロ、または約 24 日を超えています。

適用対象

IsMatch(String, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

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

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

pattern
String

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

options
RegexOptions

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

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

input または patternnull です。

options は正しい RegexOptions 値ではありません。

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

次の例は、 メソッドを使用して、 IsMatch(String, String) 文字列が有効な部分番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、英数字と 2 つの数字の後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 3 番目のセットは 4 文字で構成され、3 つの数字の後に英数字が続く必要があります。

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.

正規表現パターンは次のとおりです。

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

次の表に、正規表現パターンがどのように解釈されるかを示します。

パターン 説明
^ 文字列の先頭から照合を開始します。
[A-Z0-9] から までの任意の 1 つのアルファベット文字AZ、または任意の数字と一致します。
\d{2} 2 つの数字と一致します。
[A-Z0-9] から までの任意の 1 つのアルファベット文字AZ、または任意の数字と一致します。
- ハイフンと一致します。
\d{3} 正確に 3 つの数字と一致します。
(-\d{3}){2} ハイフンと 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[A-Z0-9] から までの任意の 1 つのアルファベット文字AZ、または任意の数字と一致します。
$ 入力文字列の末尾で照合を終了します。

パラメーターを IsMatch(String, String, RegexOptions)RegexOptions.IgnoreCase設定して メソッドをoptions呼び出すことは、次の正規表現を定義することと同じです。

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

比較については、 メソッドの例を IsMatch(String, String) 参照してください。

注釈

メソッドは IsMatch 通常、文字列を検証したり、後続の操作のためにその文字列を取得せずに文字列が特定のパターンに準拠していることを確認したりするために使用されます。 1 つ以上の文字列が正規表現パターンと一致するかどうかを判断し、後続の操作のためにそれらを取得する場合は、 メソッドまたは Matches メソッドをMatch呼び出します。

静的IsMatch(String, String, RegexOptions)メソッドは、 で指定された正規表現パターンと、 でpattern指定されたoptions正規表現オプションを使用して オブジェクトを構築Regexし、 インスタンス メソッドをIsMatch(String)呼び出すことと同じです。 この正規表現パターンは、正規表現エンジンによって迅速に取得するためにキャッシュされます。

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

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

注意 (呼び出し元)

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

こちらもご覧ください

適用対象

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現が指定した入力範囲で一致を検出するかどうかを示します。

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

パラメーター

input
ReadOnlySpan<Char>

一致を検索するスパン。

pattern
String

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

options
RegexOptions

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

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

patternnull です

タイムアウトが発生しました。

options が有効な RegexOptions 値ではありません。

適用対象

IsMatch(String, 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

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

pattern
String

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

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

input または patternnull です。

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

次の例は、 メソッドを使用して、 IsMatch(String, String) 文字列が有効な部分番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、英数字と 2 つの数字の後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 3 番目のセットは 4 文字で構成され、3 つの数字の後に英数字が続く必要があります。

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.

正規表現パターンは次のとおりです。

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

次の表に、正規表現パターンがどのように解釈されるかを示します。

パターン 説明
^ 行の先頭で一致を開始します。
[a-zA-Z0-9] 1 文字の英字 (a ~ z または から Z) またはA数字と一致します。
\d{2} 2 つの数字と一致します。
[a-zA-Z0-9] 1 文字の英字 (a ~ z または から Z) またはA数字と一致します。
- ハイフンと一致します。
\d{3} 正確に 3 つの数字と一致します。
(-\d{3}){2} ハイフンと 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[a-zA-Z0-9] 1 文字の英字 (a ~ z または から Z) またはA数字と一致します。
$ 行の末尾で一致を終了します。

注釈

メソッドは IsMatch 通常、文字列を検証したり、後続の操作のためにその文字列を取得せずに文字列が特定のパターンに準拠していることを確認したりするために使用されます。 1 つ以上の文字列が正規表現パターンと一致するかどうかを判断し、後続の操作のためにそれらを取得する場合は、 メソッドまたは Matches メソッドをMatch呼び出します。

静的IsMatch(String, String)メソッドは、 でpattern指定された正規表現パターンを使用して オブジェクトをRegex構築し、 インスタンス メソッドをIsMatch(String)呼び出すことと同じです。 この正規表現パターンは、正規表現エンジンによって迅速に取得するためにキャッシュされます。

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

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

注意 (呼び出し元)

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

こちらもご覧ください

適用対象

IsMatch(ReadOnlySpan<Char>, String)

指定した正規表現が、指定した入力スパンで一致するものを見つけるかどうかを示します。

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

パラメーター

input
ReadOnlySpan<Char>

一致を検索するスパン。

pattern
String

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

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

patternnull です

タイムアウトが発生しました。

適用対象

IsMatch(ReadOnlySpan<Char>, Int32)

Regex コンストラクターで指定された正規表現が、指定した入力スパンで一致するものを見つけるかどうかを示します。

public:
 bool IsMatch(ReadOnlySpan<char> input, int startat);
public bool IsMatch (ReadOnlySpan<char> input, int startat);
member this.IsMatch : ReadOnlySpan<char> * int -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char), startat As Integer) As Boolean

パラメーター

input
ReadOnlySpan<Char>

一致を検索するスパン。

startat
Int32

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

タイムアウトが発生しました。

適用対象

IsMatch(String)

Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

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

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

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

inputnullです。

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

次の例は、 メソッドを使用して、 IsMatch(String) 文字列が有効な部分番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、英数字と 2 つの数字の後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 3 番目のセットは 4 文字で構成され、3 つの数字の後に英数字が続く必要があります。

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.

正規表現パターンは次のとおりです。

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

次の表に、正規表現パターンがどのように解釈されるかを示します。

パターン 説明
^ 行の先頭で一致を開始します。
[a-zA-Z0-9] 1 文字の英字 (a ~ z または から Z) またはA数字と一致します。
\d{2} 2 つの数字と一致します。
[a-zA-Z0-9] 1 文字の英字 (a ~ z または から Z) またはA数字と一致します。
- ハイフンと一致します。
\d{3} 3 つの数字と完全に一致します。
(-\d{3}){2} ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[a-zA-Z0-9] 1 つの英字 (a から または から z ) またはZA数字と一致します。
$ 行の末尾で一致を終了します。

注釈

メソッドは IsMatch 通常、文字列を検証したり、文字列が後続の操作のためにその文字列を取得せずに特定のパターンに準拠していることを確認するために使用されます。 1 つ以上の文字列が正規表現パターンと一致するかどうかを判断し、後続の操作のためにそれらを取得する場合は、 メソッドまたは Matches メソッドをMatch呼び出します。

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

こちらもご覧ください

適用対象

IsMatch(ReadOnlySpan<Char>)

Regex コンストラクターで指定された正規表現が、指定した入力スパン内の一致を検出するかどうかを示します。

public:
 bool IsMatch(ReadOnlySpan<char> input);
public bool IsMatch (ReadOnlySpan<char> input);
member this.IsMatch : ReadOnlySpan<char> -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char)) As Boolean

パラメーター

input
ReadOnlySpan<Char>

一致を検索するスパン。

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

タイムアウトが発生しました。

適用対象

IsMatch(String, Int32)

入力文字列内の指定した位置から検索を開始して、Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

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

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

startat
Int32

検索を開始する文字の位置。

戻り値

正規表現と一致する箇所が見つかった場合は true。それ以外の場合は false です。

例外

inputnullです。

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

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

次の例は、 メソッドを使用して、 IsMatch(String, Int32) 文字列が有効な部品番号であるかどうかを判断する方法を示しています。 コロンの後に続く部品番号を検索します (:)文字列内の文字。 メソッドは IndexOf(Char) 、コロン文字の位置を決定するために使用され、 メソッドに IsMatch(String, Int32) 渡されます。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 最初のセット (4 文字を含む) は、英数字の後に 2 つの数字の後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、3 つの数字の後に英数字が続く必要があります。

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.

正規表現パターンは次のとおりです。

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

次の表に、正規表現パターンがどのように解釈されるかを示します。

パターン 説明
[a-zA-Z0-9] 1 つの英字 (a から または から z ) またはZA数字と一致します。
\d{2} 2 つの数字と一致します。
[a-zA-Z0-9] 1 つの英字 (a から または から z ) またはZA数字と一致します。
- ハイフンと一致します。
\d{3} 3 つの数字と完全に一致します。
(-\d{3}){2} ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[a-zA-Z0-9] 1 つの英字 (a から または から z ) またはZA数字と一致します。
$ 行の末尾で一致を終了します。

注釈

メソッドは IsMatch 通常、文字列を検証したり、文字列が後続の操作のためにその文字列を取得せずに特定のパターンに準拠していることを確認するために使用されます。 1 つ以上の文字列が正規表現パターンと一致するかどうかを判断し、後続の操作のためにそれらを取得する場合は、 メソッドまたは Matches メソッドをMatch呼び出します。

の詳細 startatについては、 の「解説」セクション Match(String, Int32)を参照してください。

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

こちらもご覧ください

適用対象