少なくとも1桁と最大6桁を必要とする正規表現が必要です。
私はこれを解決しましたが、どちらも機能していないようです。
^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$
^[0-999999]$
他の提案はありますか?
範囲数量詞{min,max}
を使用して、次のように最小1桁、最大6桁を指定できます。
^[0-9]{1,6}$
説明:
^ : Start anchor
[0-9] : Character class to match one of the 10 digits
{1,6} : Range quantifier. Minimum 1 repetition and maximum 6.
$ : End anchor
なぜ正規表現が機能しなかったのですか?
あなたはほとんど正規表現に近かった:
^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$
?
を前に置いて\
をエスケープしたので、?
は正規表現のメタ文字として機能しなくなりました(0
または1
の場合)繰り返し)が、文字通り扱われていた。
修正するには、\
を削除するだけです。
rubular で確認してください。
量指定子ベースの正規表現は短く、読みやすく、任意の桁数に簡単に拡張できます。
2番目の正規表現:
^[0-999999]$
と同等です:
^[0-9]$
正確に1桁の文字列に一致します。文字クラス[aaaab]
は[ab]
と同じであるため、これらは同等です。
^\d{1,6}$
....................
試すことができます
^[0-9]{1,6}$
動作するはずです。
^[0-9]{1,6}$
それを行う必要があります。 VB.NETが同じであるかどうかを知るのに十分な知識がありません。
例については、 Wikipedia をご覧ください。