79 votes

Expression régulière à 6 chiffres

J'ai besoin d'une expression régulière qui nécessite au moins UN chiffre et SIX au maximum.

J'ai travaillé là-dessus, mais aucune des deux ne semble fonctionner.

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$

^[0-999999]$

Une autre suggestion ?

187voto

codaddict Points 154968

Vous pouvez utiliser le quantificateur de plage {min,max} pour spécifier un minimum de 1 chiffre et un maximum de 6 chiffres comme :

^[0-9]{1,6}$

Explication :

^     : 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

Pourquoi votre regex n'a-t-elle pas fonctionné ?

Vous étiez presque proche sur le regex :

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$

Puisque vous avez échappé à la ? en le faisant précéder de la touche \ le ? n'agissait plus comme un méta-caractère de regex ( pour 0 o 1 répétitions) mais était traité de manière littérale.

Pour le réparer, il suffit de retirer le \ et vous êtes là.

Voir sur rubular .

La regex basée sur les quantificateurs est plus courte, plus lisible et peut facilement être étendue à un nombre quelconque de chiffres.

Votre deuxième regex :

^[0-999999]$

est équivalent à :

^[0-9]$

qui correspond aux chaînes de caractères comportant exactement un chiffre. Ils sont équivalents car une classe de caractères [aaaab] est identique à [ab] .

32voto

LukeH Points 110965
  ^\d{1,6}$

....................

14voto

James Points 24725

Vous pouvez essayer

^[0-9]{1,6}$

cela devrait fonctionner.

4voto

eckes Points 17277

^[0-9]{1,6}$ devrait le faire. Je ne connais pas assez bien VB.NET pour savoir si c'est la même chose là-bas.

À titre d'exemple, consultez le site Wikipedia .

2voto

SridharKritha Points 346
\b\d{1,6}\b

Explication

\b    # word boundary - start
\d    # any digits between 0 to 9 (inclusive)
{1,6} # length - min 1 digit or max 6 digits
\b    # word boundary - end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X