babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015
-
25 juin 2008 à 12:32
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015
-
25 juin 2008 à 16:27
Bonjour,
j'essaye vainement de créer un pattern pour un regex Pouvez vous m'aider ?
But : vérifier qu'une chaine ressemble à ce que l'on peut saisir dans la textbox "Pages" de Word. En clair qq chose du style :
- 1
- 1-10
- 1-10;2
-1-10;15-20
-1;3;5;15-18
-1;3;5;15-18;20
- ...
La différence avec Word est que j'aimerai que ma chaine se termine obligatoirement par un nombre
Ex :
- 1;3;5- => interdit
- 1;3;5-10 => OK
Précision :
- début : un chiffre obligatoirement (différent de 0) => 0;12 => Interdit
- fin : : un chiffre obligatoirement (différent de 0) =>12;0 => Interdit
J'ai écris ça : pattern = @"^((\d+[;|\-]{1}\d+)|(\d){1})*$"; mais cette expression ne m'interdit pas "1-12-3"
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015 25 juin 2008 à 14:45
Merci beaucoup pour ce pattern...
je rencontre juste un petit problème lorsque le premier nombre vaut "012" par exemple (dans mon cas c'est le "0" significatif qui m'interesse et qui doit être interdit).
j'ai donc modifié ton pattern comme ceci et je testerai ensuite la première valeur (à moins qu'il existe une autre manière)
^\d+(-[1-9]\d*)?(;[1-9]\d*(-[1-9]\d*)?)*$
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015 25 juin 2008 à 15:07
je dois refuser le "0;..." mais accèpter le "012;...". En clair, je ne peux pas sélectionner la page 0 mais je peux accepter que l'utilisateur saisisse 012
DT