-3

私はこのような番号を持っています

90.1103.41
90440036.1112.227
90.1112.228
90.1001.0009

C#でRegularExpressionを検証するにはどうすればよいですか?

4

3 に答える 3

2

文字クラスを使用して\d、数字 (文字'0'- '9') を照合します。

to は、前のエンティティ (グループ/キャラクター/など)の+少なくとも 1 つの出現に一致します。

\.リテラルのピリオド文字 ( ) と一致させるために使用し'.'ます。

^とは$、パターンが文字列の最初から最後まで一致する必要があることを示します。

using System.Text.RegularExpressions;

...

const string pattern = @"^\d+\.\d+\.\d+$";
Regex.IsMatch("90.11103.41", pattern);       //true
Regex.IsMatch("90440036.1112.227", pattern); //true
Regex.IsMatch("90.1112.228", pattern);       //true
Regex.IsMatch("90.1001.0009", pattern);      //true

少なくとも 2 つの数値グループが必要な場合は、次のパターンを使用できます。

^(\d+\.)+\d+$

少なくとも 1 つの数字のグループが必要である場合は、次を使用できます。

^(\d+\.)*\d+$

グループ数の固定範囲が許容されるという要件がある場合は、次を使用できます。

^(\d+\.){m,n}\d+$

mnは、最後のグループの前にあるグループの最小数と最大数に置き換えられます。

このような数値グループの正確な数を表す別の方法は次のとおりです。

^(\d+\.){m}\d+$

m必要なグループ数を引いたプレースホルダーはどこですか1

于 2013-01-08T06:17:40.457 に答える
1

これを試すことができます:

string yourNumber = "90440036.1112.227";

Match m = Regex.Match(yourNumber,@"[\d\.]+")

if(m.Success)
{
    //valid
}

else
{
    //invalid
}
于 2013-01-08T06:17:20.973 に答える
0

更新しました

試す

^(?:\d\.?)+$

とあなたのコード:

bool foundMatch = Regex.IsMatch(inputString, @"^(?:\d\.?)+$");

123.456.789        valid
123...456789       invalid
...123..           invalid
123456             valid

説明

(?:subexpression) 非キャプチャグループを定義します。

\d 任意の10進数に一致します。

\..文字 に一致

? 前の要素に0回または1回一致します。

+ 前の要素と1回以上一致します。

于 2013-01-08T06:07:43.233 に答える