[C#]正規表現で文字列が数字とハイフンか判定するには?

C#

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

正規表現で文字列が先頭にハイフン(-)が無いもしくは1つだけあり、それ以外が数字のみか判定する方法を紹介します。

スポンサーリンク

方法

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

正規表現で文字列が数字とハイフンかどうか判定するには、"^-?[0-9]+$"を使います。

まず、Regexを導入します。

using System.Text.RegularExpressions;

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

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

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

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

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

regex.IsMatch(text)

上記のIsMatch()は、引数に指定した文字列が先頭のハイフンと数字のみもしくは数字のみならばTrue、それ以外ならばFalseを返します。

先頭にハイフンが必ず付いて欲しい場合は、"^-?[0-9]+$"ではなく、"^-[0-9]+$"を指定します。

Regex regex = new Regex("^-[0-9]+$");

使用例

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

コメント

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