[C#]正規表現で数字のみの条件に桁数を追加するには?

その他

どうも、ちょげ(@chogetarou)です。

正規表現で数字のみかどうかだけでなく、桁数のパターンを追加する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

正規表現で数字のみの条件に桁数を追加する方法は、2つあります。

{n}

1つは、{n}を使う方法です。

まず、Regexを導入します。

using System.Text.RegularExpressions;

次に、Regex()をインスタンス化します。

インスタンス化する際、Regex()の引数に"^[0-9]{n}$" (n=桁数)を指定します。

//n=桁数
Regex regex = new Regex("^[0-9]{n}$");

そして、Regex()のインスタンスからIsMatch()を呼び出します。

IsMatch()の引数に対象の文字列を指定します。

regex.IsMatch(text)

上記のIsMatch()は、引数に指定した文字列が特定の桁数の数字のみならばTrue、そうで無いならばFalseを返します。

先頭にハイフンが付くマイナスの値も含めたい場合は、"^[0-9]{n}$"を、"^-?[0-9]{n}$"にします。

Regex regex = new Regex("^-?[0-9]{5}$");

使用例

using System;
using System.Text.RegularExpressions;
public class Example
{
    public static void Main()
    {
        string num1 = "1234";
        string num2 = "01234";
        string num3 = " 1b3d5";
        
        Regex regex = new Regex("^[0-9]{5}$");
        
        Console.WriteLine(regex.IsMatch(num1));
        Console.WriteLine(regex.IsMatch(num2));
        Console.WriteLine(regex.IsMatch(num3));
    }
}
出力:
False
True
False

{n, m}

もう1つは、{n, m}を使う方法です。

まず、Regexを導入します。

using System.Text.RegularExpressions;

次に、Regex()をインスタンス化します。

インスタンス化する際、Regex()の引数に"^[0-9]{n,m}$" を指定します。

//nからmまでの桁数
Regex regex = new Regex("^[0-9]{3,6}$");

そして、Regex()のインスタンスからIsMatch()を呼び出します。

IsMatch()の引数に対象の文字列を指定します。

regex.IsMatch(text)

上記のIsMatch()は、引数に指定した文字列が特定の範囲(nからmまで)の桁数の数字のみならばTrue、そうで無いならばFalseを返します。

先頭にハイフンが付くマイナスの値も含めたい場合は、"^[0-9]{n,m}$"を、"^-?[0-9]{n,m}$"にします。

Regex regex = new Regex("^-?[0-9]{n,m}$");

使用例

using System;
using System.Text.RegularExpressions;
public class Example
{
    public static void Main()
    {
        string num1 = "12";
        string num2 = "01234";
        string num3 = "1b3d5";
        string num4 = "123456";
        
        Regex regex = new Regex("^[0-9]{3,6}$");
        
        Console.WriteLine(regex.IsMatch(num1));
        Console.WriteLine(regex.IsMatch(num2));
        Console.WriteLine(regex.IsMatch(num3));
        Console.WriteLine(regex.IsMatch(num4));
    }
}
出力:
False
True
False
True

まとめ

正規表現で数字のみの条件に桁数を追加する方法は、次の2つです。

  • {n}を使う方法
    Regex regex = new Regex("^[0-9]{n}$");
  • {n,m}を使う方法
    Regex regex = new Regex("^[0-9]{3,6}$");

コメント

タイトルとURLをコピーしました