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>, 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
または pattern
が null
。
タイムアウトが発生しました。
例
次の例は、IsMatch(String, String, RegexOptions, TimeSpan) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、3 つの数字の後に英数字が続く必要があります。 正規表現パターンの照合には入力文字列の検索を最小限に抑える必要があるため、このメソッドはタイムアウト間隔を 500 ミリ秒に設定します。
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
{
bool isMatch = Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(500));
Console.WriteLine($"{partNumber} {(isMatch ? "is" : "is not")} a valid part number.");
}
catch (RegexMatchTimeoutException e)
{
Console.WriteLine($"Timeout after {e.MatchTimeout} seconds matching {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
パラメーターは、パターン マッチング メソッドがタイムアウトするまでの一致の検索を試行する期間を指定します。タイムアウト間隔を設定すると、過剰なバックトラッキングに依存する正規表現が、近い一致を含む入力を処理するときに応答を停止するように見えるのを防ぐことができます。 詳細については、「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
します。
例外
正規表現解析エラーが発生しました。
pattern
が null
タイムアウトが発生しました。
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
または pattern
が null
。
options
は有効な RegexOptions 値ではありません。
タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。
例
次の例は、IsMatch(String, String) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、3 つの数字の後に英数字が続く必要があります。
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
します。
例外
正規表現解析エラーが発生しました。
pattern
が null
タイムアウトが発生しました。
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
または pattern
が null
。
タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。
例
次の例は、IsMatch(String, String) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、3 つの数字の後に英数字が続く必要があります。
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($"{partNumber} {(Regex.IsMatch(partNumber, pattern) ? "is" : "is not")} " +
$"a valid part number.");
// 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
します。
例外
正規表現解析エラーが発生しました。
pattern
が null
タイムアウトが発生しました。
適用対象
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
します。
例外
input
は null
です。
startat
が 0 未満か、input
の長さより大きい値です。
タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。
例
次の例は、IsMatch(String, Int32) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。 文字列内のコロン (:)文字) の後に続く部品番号を検索します。 IndexOf(Char) メソッドは、コロン文字の位置を決定するために使用され、IsMatch(String, Int32) メソッドに渡されます。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、3 つの数字の後に英数字が続く必要があります。
string[] partNumbers = [ "Part Number: 1298-673-4192", "Part No: A08Z-931-468A",
"_A90-123-129X", "123K-000-1230",
"SKU: 0919-2893-1256" ];
Regex rgx = MyRegex();
foreach (string partNumber in partNumbers)
{
int start = partNumber.IndexOf(':');
if (start >= 0)
{
Console.WriteLine($"{partNumber} {(rgx.IsMatch(partNumber, start) ? "is" : "is not")} a valid part number.");
}
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
します。
例外
input
は null
です。
タイムアウトが発生しました。 タイムアウトの詳細については、「解説」セクションを参照してください。
例
次の例は、IsMatch(String) メソッドを使用して、文字列が有効な部品番号であるかどうかを判断する方法を示しています。 正規表現では、パーツ番号に、ハイフンで区切られた 3 つの文字セットで構成される特定の形式があることを前提としています。 4 文字を含む最初のセットは、1 つの英数字の後に 2 つの数字が続き、その後に英数字が続く必要があります。 3 文字で構成される 2 番目のセットは数値である必要があります。 4 文字で構成される 3 番目のセットには、3 つの数字の後に英数字が続く必要があります。
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($"{partNumber} {(rgx.IsMatch(partNumber) ? "is" : "is not")} a valid part number.");
// 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
します。
例外
タイムアウトが発生しました。
適用対象
.NET