Home> C# > C# 学び直し > 正規表現

翻訳した、msdnのRegex.IsMatchメソッドの説明

新規作成日 2017-11-07
最終更新日

Regex.IsMatchメソッドは、正規表現を使って入力文字列内に特定のパターンが存在するか確認するためのメソッドです。

確認した時点では、msdnのRegex.IsMatch メソッドの説明は、翻訳が読みにくいので、自分で翻訳し直しました。

全ての部分を翻訳し直したわけではないので、元のページと比較しながらご利用下さい。

Regex.IsMatch メソッド (String, String)

msdnの情報:Regex.IsMatch メソッド (String, String)

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

public static bool IsMatch(
        string input,
        string pattern
)

パラメーター

  • input

    Type: System.String

    一致するものを検索する文字列。

  • pattern

    Type: System.String

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

  • 戻り値

    Type: System.Boolean

    正規表現が一致を検出した場合、true。;それ以外の場合、false。

例外

例外 状態
ArgumentException 正規表現の解析エラーが発生しました。
ArgumentNullException 入力やパターンは、nullです。
RegexMatchTimeoutException タイムアウトが発生しました。タイムアウトの詳細については、Remarksセクションを参照してください。

備考

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

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

パターン・パラメータは、一致するための文字列を象徴的に説明する正規表現言語要素から構成されています。正規表現の詳細については、.NET Frameworkの正規表現と正規表現言語 ― クイック・リファレンス ― を参照してください。

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

呼び出し時の注意:

このメソッドは、一定間隔の後、タイムアウトします。これは、メソッドが呼び出されるアプリケーション・ドメインの既定のタイムアウト値を等価です。タイムアウト値が、アプリケーション・ドメインに定義されていない場合、メソッドが、タイムアウトするのを防ぐ、InfiniteMatchTimeout値が、使用されます。パターンの一致を検証するために推奨される静的メソッドは、あなたにタイムアウト間隔を設定させるRegex.IsMatch(String, String, RegexOptions, TimeSpan)です。

使用例

次の例は、文字列が有効な部品番号かどうか判断する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.

正規表現パターンは以下の通りです:

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

次の表は、正規表現パターンの解釈方法を示します。

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

Regex.IsMatch メソッド (String)

msdnの情報:Regex.IsMatch メソッド (String)

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

構文

public bool IsMatch(
        string input
)

パラメーター

  • input

    Type: System.String

    一致するものを検索する文字列。

  • 戻り値

    正規表現が一致を検出した場合、true。;それ以外の場合、false。

例外

例外 状態
ArgumentNullException 入力はnullです。
RegexMatchTimeoutException タイムアウトが発生しました。タイムアウトの詳細については、Remarksセクションを参照してください。

備考

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

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

使用例

次の例は、文字列が有効な部品番号かどうか判断する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.

正規表現パターンは以下の通りです:

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

次の表は、正規表現パターンの解釈方法を示します。

パターン 説明
^ 行の文頭から一致を開始します。
[a-zA-Z0-9] 一つの英字(a~zまたはA~Z)または、数字を一致させます。
\d{2} 2つの数字と一致します。
[a-zA-Z0-9] 一つの英字(a~zまたはA~Z)または、数字を一致させます。
- ハイフンに一致します。
\d{3} 正確に3つの数字に一致します。
(-\d{3}){2} ハイフンに続く3つの数字を検索します。そして、このパターンの2回の出現に一致します。
[a-zA-Z0-9] 一つの英字(a~zまたはA~Z)または、数字を一致させます。
$ 行の末尾に一致します。
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」