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

正規表現で数字のみの条件に桁数を追加する方法は、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を返します。
使用例
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を返します。
使用例
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}$");
コメント