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

Regex.IsMatchメソッド:指定したパターンに一致する部分文字列を持っているか判定する

新規作成日 2017-11-14/
最終更新日

指定したパターンに一致する部分文字列を持っているか確認する操作は、主に、入力した文字列が期待したパターンに準拠しているかを判別し、適合していない場合、再入力を求める入力文字列の妥当性検証を行う際に利用されます。

指定したパターンに一致する部分文字列を持っているか確認する場合、RegexクラスのIsMatchメソッドを使用します。

Regex.IsMatchメソッドは、入力文字列が、指定したパターンに一致する部分文字列を持っているか判定するメソッドです。

is、can、hasが頭につくメソッドは、bool型の値を返します。

isの場合は、「A is B」(AはBである)をの意味で、その答えをtrue(真)あるいはfalse(偽)で返すと考えればわかりやすいかと思います。

具体的な利用方法としては、数字の桁数やハイフンの位置を判断して、郵便番号や電話番号、@の有無を判断してメールアドレスなどの特定の形式のデータにあからさまに間違った値が入力されていないか、確認する際に使用されます。ユーザーに入力を求める操作で、ユーザーが入力した値が適切な値かどうか判断する妥当性検証に用いることが主な用途です。 不適切であれば、すぐにユーザーに入力した値の再入力を求める事ができます。

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

次の例は、正規表現パターンを検証する際に利用できるプログラムです。使用する正規表現が意図した文字列を認識するかを確認するプログラムを作成する事ができます。

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

using System;
using System.Text.RegularExpressions;

namespace RegularExperssion02
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] partNumbers = {
                "1234-5678",
                "12345678",
                "1235-45",
                "123-1567"};

            string pattern = @"^\d{4}-*\d{4}$";

            foreach (string partNumber in partNumbers)
                Console.WriteLine("{0}は、郵便番号で{1} 。",
                                  partNumber,
                                  Regex.IsMatch(partNumber, pattern) ? "す" : "はありません");

            // Keep the console window open in debug mode.
            // デバッグモードで、コンソール・ウインドウを開いた状態に維持します。
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}

Regex.IsMatch メソッド (String)

using System;
using System.Text.RegularExpressions;

namespace RegularExperssion02
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] partNumbers = {
                "1234-5678",
                "12345678",
                "1235-45",
                "123-1567"};

            Regex rgx = new Regex(@"^\d{4}-*\d{4}$");

            foreach (string partNumber in partNumbers)
                Console.WriteLine("{0}は、郵便番号で{1} 。",
                                  partNumber,
                                  rgx.IsMatch(partNumber) ? "す" : "はありません");

            // Keep the console window open in debug mode.
            // デバッグモードで、コンソール・ウインドウを開いた状態に維持します。
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}
このエントリーをはてなブックマークに追加

Home PC C# Illustration

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