次の方法で共有


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>, Int32)

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

IsMatch(ReadOnlySpan<Char>, String)

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

IsMatch(String, Int32)

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

IsMatch(String)

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

IsMatch(ReadOnlySpan<Char>)

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

IsMatch(String, String, RegexOptions, TimeSpan)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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

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 が負、ゼロ、または約 24 日を超えています。

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

次の例は、IsMatch(String, String, RegexOptions, TimeSpan) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、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] A から Zまでの任意の 1 つの英字、または任意の数字と一致します。
\d{2} 2 つの数字と一致します。
[A-Z0-9] A から Zまでの任意の 1 つの英字、または任意の数字と一致します。
- ハイフンと一致します。
\d{3} 3 つの数字と完全に一致します。
(-\d{3}){2} ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[A-Z0-9] A から Zまでの任意の 1 つの英字、または任意の数字と一致します。
$ 文字列の末尾で一致を終了します。

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

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

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

注釈

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

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

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

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

注意 (呼び出し元)

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

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

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

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

こちらもご覧ください

  • 正規表現言語要素 を する

適用対象

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

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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

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)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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

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 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、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] A から Zまでの任意の 1 つの英字、または任意の数字と一致します。
\d{2} 2 つの数字と一致します。
[A-Z0-9] A から Zまでの任意の 1 つの英字、または任意の数字と一致します。
- ハイフンと一致します。
\d{3} 3 つの数字と完全に一致します。
(-\d{3}){2} ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[A-Z0-9] A から Zまでの任意の 1 つの英字、または任意の数字と一致します。
$ 文字列の末尾で一致を終了します。

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

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

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

注釈

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

静的 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)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

指定した正規表現が、指定した一致するオプションを使用して、指定した入力スパン内の一致を検索するかどうかを示します。

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)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

指定した正規表現が、指定した入力文字列内の一致を検出するかどうかを示します。

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 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、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] 単一の英字 (z または A から Z) または数字をa に一致させます。
\d{2} 2 つの数字と一致します。
[a-zA-Z0-9] 単一の英字 (z または A から Z) または数字をa に一致させます。
- ハイフンと一致します。
\d{3} 3 つの数字と完全に一致します。
(-\d{3}){2} ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[a-zA-Z0-9] 単一の英字 (z または A から Z) または数字をa に一致させます。
$ 行の末尾で一致を終了します。

注釈

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

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

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

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

注意 (呼び出し元)

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

こちらもご覧ください

  • 正規表現言語要素 を する

適用対象

IsMatch(ReadOnlySpan<Char>, Int32)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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(ReadOnlySpan<Char>, String)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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

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(String, Int32)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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 文字を含む最初のセットは、1 つの英数字の後に 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] 単一の英字 (z または A から Z) または数字をa に一致させます。
\d{2} 2 つの数字と一致します。
[a-zA-Z0-9] 単一の英字 (z または A から Z) または数字をa に一致させます。
- ハイフンと一致します。
\d{3} 3 つの数字と完全に一致します。
(-\d{3}){2} ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[a-zA-Z0-9] 単一の英字 (z または A から Z) または数字をa に一致させます。
$ 行の末尾で一致を終了します。

注釈

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

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

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

こちらもご覧ください

  • 正規表現言語要素 を する

適用対象

IsMatch(String)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、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] 単一の英字 (z または A から Z) または数字をa に一致させます。
\d{2} 2 つの数字と一致します。
[a-zA-Z0-9] 単一の英字 (z または A から Z) または数字をa に一致させます。
- ハイフンと一致します。
\d{3} 3 つの数字と完全に一致します。
(-\d{3}){2} ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。
[a-zA-Z0-9] 単一の英字 (z または A から Z) または数字をa に一致させます。
$ 行の末尾で一致を終了します。

注釈

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

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

こちらもご覧ください

  • 正規表現言語要素 を する

適用対象

IsMatch(ReadOnlySpan<Char>)

ソース:
Regex.Match.cs
ソース:
Regex.Match.cs
ソース:
Regex.Match.cs

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します。

例外

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

適用対象