1. ホーム
  2. c#

[解決済み] 数字のみの正規表現

2022-03-14 20:34:13

質問

正規表現を全く使ったことがないので、トラブルシューティングに困っています。正規表現は、含まれる文字列がすべて数字の場合にのみマッチするようにしたいのですが、以下の2つの例では、すべての数字と等号を含む文字列、たとえば "1234=4321" にマッチしています。この動作を変更する方法があると思いますが、先ほども言ったように、私は正規表現をあまり扱ったことがないのです。

string compare = "1234=4321";
Regex regex = new Regex(@"[\d]");

if (regex.IsMatch(compare))
{ 
    //true
}

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

if (regex.IsMatch(compare))
{ 
    //true
}

因みに、C#と.NET2.0を使っています。

どのように解決するのですか?

開始と終了のアンカーを使用します。

Regex regex = new Regex(@"^\d$");

使用方法 "^\d+$" 複数の数字にマッチさせたい場合。


注意点 "\d"[0-9] といった数字文字や、東アラビア数字のような ٠١٢٣٤٥٦٧٨٩ . 使用方法 "^[0-9]+$" は、アラビア数字の0〜9にのみマッチングを制限します。


数字以外の数値表現(手始めに10進数の値など)を含める必要がある場合は をクリックします。 's 正規表現で数字を解析するための包括的なガイド .