Regex.IsMatch メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
正規表現と一致する対象が入力文字列内で見つかったかどうかを示します。
オーバーロード
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
または pattern
が null
です。
タイムアウトが発生しました。
例
次の例では、 メソッドを使用して、 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 つのアルファベット文字A Z 、または任意の数字と一致します。 |
\d{2} |
2 つの数字と一致します。 |
[A-Z0-9] |
から までの任意の 1 つのアルファベット文字A Z 、または任意の数字と一致します。 |
- |
ハイフンと一致します。 |
\d{3} |
正確に 3 つの数字と一致します。 |
(-\d{3}){2} |
ハイフンと 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。 |
[A-Z0-9] |
から までの任意の 1 つのアルファベット文字A Z 、または任意の数字と一致します。 |
$ |
入力文字列の末尾で照合を終了します。 |
パラメーターを 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
です。
例外
正規表現の解析エラーが発生しました。
pattern
は null
です
タイムアウトが発生しました。
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
または pattern
が null
です。
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 つのアルファベット文字A Z 、または任意の数字と一致します。 |
\d{2} |
2 つの数字と一致します。 |
[A-Z0-9] |
から までの任意の 1 つの英字A Z 、または任意の数字と一致します。 |
- |
ハイフンと一致します。 |
\d{3} |
3 つの数字と完全に一致します。 |
(-\d{3}){2} |
ハイフンの後に 3 つの数字を検索し、このパターンの 2 つの出現箇所と一致します。 |
[A-Z0-9] |
から までの任意の 1 つの英字A Z 、または任意の数字と一致します。 |
$ |
入力文字列の末尾で照合を終了します。 |
パラメーターを 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)メソッドは、 で指定された正規表現パターンと、 でoptions
pattern
指定された正規表現オプションを使用してオブジェクトを構築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
です。
例外
正規表現の解析エラーが発生しました。
pattern
は null
です
タイムアウトが発生しました。
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
または pattern
が null
です。
タイムアウトが発生しました。 タイムアウトの詳細については、「解説」をご覧ください。
例
次の例は、 メソッドを使用して、 IsMatch(String, String) 文字列が有効な部品番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 最初のセット (4 文字を含む) は、英数字の後に 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] |
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
です。
例外
正規表現の解析エラーが発生しました。
pattern
は null
です
タイムアウトが発生しました。
適用対象
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
です。
例外
input
が null
です。
タイムアウトが発生しました。 タイムアウトの詳細については、「解説」をご覧ください。
例
次の例は、 メソッドを使用して、 IsMatch(String) 文字列が有効な部品番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 最初のセット (4 文字を含む) は、英数字の後に 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] |
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呼び出します。
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
です。
例外
input
が null
です。
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 ) または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呼び出します。
の詳細 startat
については、 の「解説」セクション Match(String, Int32)を参照してください。
RegexMatchTimeoutException一致する操作の実行時間がコンストラクターで指定されたタイムアウト間隔を超えると、例外がRegex.Regex(String, RegexOptions, TimeSpan)スローされます。 コンストラクターを呼び出すときにタイムアウト間隔を設定しない場合、オブジェクトが作成されるアプリケーション ドメイン Regex に対して確立されたタイムアウト値を操作が超えると、例外がスローされます。 コンストラクター呼び出しまたはアプリケーション ドメインのプロパティで Regex タイムアウトが定義されていない場合、またはタイムアウト値が Regex.InfiniteMatchTimeoutの場合は、例外はスローされません。