C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で数値のみにマッチする正規表現の書き方

正規表現(Regular Expression)とは、入力されたテキストとの一致を判定するためのパターンのことです。.NET Framework には、こうしたパターンマッチングを実現する正規表現エンジンが組み込まれており、C# から簡単に利用することができます。

正規表現のパターンは、1つ以上の文字リテラル・演算子・構成要素を組み合わせて作ります。数値だけにマッチさせるパターンを理解するために、まず基本となるメタ文字を確認しておきましょう。

正規表現の基本メタ文字

* = 直前の要素の0回以上の繰り返し
? = 直前の要素が0回または1回
^ = 文字列の先頭([] 内では否定条件)
[] = 括弧内のいずれか1文字(範囲指定も可)

「^」記号は、パターン内で先頭位置や否定条件を指定するために使われます。また、「[ ]」括弧の中には 0-9、a-z、A-Z のような文字の範囲を指定できます。

C#で数値のみを判定するサンプルコード

以下の例では、^-?[0-9][0-9,\.]+$ というパターンを使って、文字列が数値のみで構成されているかどうかを判定します。「-?」はマイナス符号の有無を許容し、「$」は文字列の末尾を意味します。

using System;
using System.Text.RegularExpressions;

class Program{
    public static void Main(){
        string num = "123dh";
        Regex regex = new Regex(@"^-?[0-9][0-9,\.]+$");
        var res = regex.IsMatch(num);
        System.Console.WriteLine(res);
    }
}

出力結果

False

文字列「123dh」にはアルファベットが含まれているため、数値のみのパターンには一致せず、False が返されます。

class Program{
    public static void Main(){
        string num = "123";
        Regex regex = new Regex(@"^-?[0-9][0-9,\.]+$");
        var res = regex.IsMatch(num);
        System.Console.WriteLine(res);
    }
}

出力結果

True

整数のみで構成された文字列「123」はパターンに一致するため、True が出力されます。

class Program{
    public static void Main(){
        string num = "123.67";
        Regex regex = new Regex(@"^-?[0-9][0-9,\.]+$");
        var res = regex.IsMatch(num);
        System.Console.WriteLine(res);
    }
}

出力結果

True

小数点を含む「123.67」も、パターン内の「\.」によって小数点が許容されるため True になります。さらに、[] 内の「,」により、カンマ区切りの数値(例:1,234)も同様に判定できます。

このように、正規表現の各メタ文字を組み合わせることで、C# でも柔軟に数値形式のバリデーションを行うことが可能です。

  1. 【保存版】ディスクドライブの書き込み保護を有効・無効にする3つの方法

    ディスクドライブに書き込み保護が有効になっていると、その内容を変更したり複製したりすることが一切できなくなります。これこそが、書き込み保護が非常に便利な機能とされている理由です。書き込み保護は、すべてのバージョンのWindows OSにおいて、あらゆるディスクドライブに対して有効または無効に設定できます。 作業を始める前に、万が一のトラブルに備えてシステムの復元ポイントを作成しておくことをおすすめします。何か問題が発生した場合でも、復元ポイントから元の状態に戻せるため安心です。復元ポイントの作成方法は、こちらのガイド(Windows 10向けに解説されていますが、他のバージョンのWindows

  2. Wordでローマ数字を入力する方法を徹底解説!誰でもできる5つの簡単テクニック

    ローマ数字はルネサンス期以降、世紀を表す記号として使われてきた歴史ある数字体系です。古い書籍や文献にも数多く登場し、数学の分野ではアラビア数字と並んで重要な役割を果たしてきました。また、書籍だけでなく人名にも用いられることがあり、家系や世代を表すために名前の末尾にローマ数字が付けられることもあります。公文書においてもその格式高い印象から重宝されており、文書に洗練された雰囲気を与える効果があります。 「Wordでローマ数字を入力するにはどうすればいいの?」とお悩みの方に向けて、この記事では初心者の方でもすぐに実践できる方法をわかりやすく解説します。最後まで読んで、ぜひ参考にしてください。 Wor