0

次の形式にする必要がある文字列があります: XX999900. XX小数点以下の文字のみで、その後に 6 桁の数字が続く必要があります。

そこで、正規表現を次のように使用することを考えました。

string sPattern = @"^\\[A-z]{2}\\d{6}$";
indexNumber = "ab9999.00";
if (Regex.IsMatch(indexNumber, sPattern)
{
     // do whatever
}

失敗します。誰かが何が悪いのか教えてもらえますか?

4

4 に答える 4

7

[A-z]有効なキャラクタークラスだとは思いません。\\を使用する場合は、確かに必要ありません@

これを試して:

@"^[a-zA-Z]{2}\d{6}$"

4つの数字の後にさらに2つの数字が続くフォーマットが必要な場合は、次のことを.試してください。

@"^[a-zA-Z]{2}\d{4}\.\d{2}$"

(.NETの場合、どの\dスクリプトでも数字と一致するため、それらのみを一致させたい場合は、に置き換えることができます)[0-9]

于 2012-08-08T18:15:09.780 に答える
1

A-zは無効であり(大文字と小文字が混在)、6桁の連続した数字がありません。小数点以下4桁、さらに2桁あります。試す

^[a-zA-Z]{2}\d{4}.\d{2}$
于 2012-08-08T18:16:52.243 に答える
1

エスケープ文字が多すぎます。試す:

string sPattern = @"^[a-zA-Z]{2}\d{6}$";
于 2012-08-08T18:15:16.760 に答える
0

テストしている値が小数であり、正規表現パターンがそうではないため、失敗します。さらに、正規表現パターンは文字列全体を調べます。つまり、^は文字列の先頭から開始することを示し、$は文字列の終了を示します。「で始まる」だけが必要な場合は、パターンの最後に$をドロップします。

于 2012-08-08T18:16:51.577 に答える