私は正規表現専門家だが、私はそれを行くを与えてくれたの段階で2000は、ここで私が作ってみたものです:正規表現100から100
^([1]*[1-9]00|1000|2000)$
アイデアは、2000年に100をできるようにすることですそれを含めて100刻みで入力してください。
私は手動でテストしました。それは働くと思われますが、これが最善の解決策ですか?誰も目障りなエラーを見ることができますか?
フィードバックを感謝します。
私は正規表現専門家だが、私はそれを行くを与えてくれたの段階で2000は、ここで私が作ってみたものです:正規表現100から100
^([1]*[1-9]00|1000|2000)$
アイデアは、2000年に100をできるようにすることですそれを含めて100刻みで入力してください。
私は手動でテストしました。それは働くと思われますが、これが最善の解決策ですか?誰も目障りなエラーを見ることができますか?
フィードバックを感謝します。
正規表現が有効です。ちょうど[1] == 1
に注目してください。代替方法は、
^(1?[1-9]00|[12]000)$
demoを参照してください。
あなたは、サーバー側の検証を使用している場合は、代わりに正規表現のint型の操作を好む:if (myNumber >= 100 && myNumber <= 2000 && myNumber % 100 == 0)
例:すべての
var random = new Random(100);
int myNumber;
for (int i = 0; i < 5000; i++)
{
myNumber = random.Next(0, 10000);
if (myNumber >= 100 && myNumber <= 2000 && myNumber % 100 == 0)
{
Console.WriteLine($"{myNumber} respect the conditions.");
}
}
@TimBiegeleisen目標は100から2000までの数字をマッチさせることです。私はOPの質問に10000の痕跡は見当たりません。 –
おっと...答える前に全質問を読むのが助かります:-) +1 –
@TimBiegeleisen問題はありません; –
まず、正規表現は、このようなタスクのための最善の解決策ではありません。正規表現は、任意の文字列に一致するのに適しています。数字を使って作業したいと思っています。使用するプログラミング言語は、おそらく正規表現以外のものに役立つでしょう。しかし
、あなたが主張する場合は、あなたの正規表現しなければならない多くの整数100
、200
... 900
、1000
、1100
... 2000
00
で終わるこれらの数字に一致する正規表現。接頭辞は、1
から9
までの整数、最初の数字として1
、および20
の2桁の数字に一致します。一緒に入れて
、正規表現は次のとおりです。
([1-9]|1[0-9]|20)00
作品:
( # start a group
[1-9] # match any digit between 1 and 9...
| # ... or ...
1[0-9] # ... match any 2-digit number that starts with 1
| # ... or ...
20 # match 20
) # end o the group
00 # match 00
別の正規表現は、次のとおりです。
(1?[1-9]|[12]0)00
ITグループ値別の方法で1..20
。
(
1? # match 1 or nothing
[1-9] # match any digit between 1 and 9
| # ... or ...
[12]0 # match 1 or 2 followed by 0 (i.e. match 10 or 20)
)
00 # end with 00
1?[1-9]
10
以外1
と19
間の数字と一致します。 10
と20
は[12]0
と一致します。
素晴らしい説明ありがとう。 –
正規表現ではなく、(input> = 100 && input%100 == 0 && input <= 2000)の場合はどうでしょうか?個人的に、私はここの正規表現が好きです... – Gerrit0
私はバリデーターでそれを使用していますので、カスタムを作成する必要はありません。 –
この正規表現は、たとえば '2100'とは一致しません。 –
'[1]'は '1 'と同じです – axiac