help sur une expression régulière

help sur une expression régulière - C#/.NET managed - Programmation

Marsh Posté le 22-08-2007 à 17:22:01    

Hello,
 
J'aimerais autoriser les espaces (pour séparer les milliers) dans cette expression régulière qui prend 19 chiffres avant la virgule et 4 chiffres après la virgule (facultatif), voici l'expression régulière:
 

Code :
  1. ^-?\d{0,19}(\,\d{0,4})?$


 
merci de votre aide
(dsl si je ne suis pas dans le bon topic mais j'utilise cette expression régulière dans un contrôle ASP.NET)

Reply

Marsh Posté le 22-08-2007 à 17:22:01   

Reply

Marsh Posté le 22-08-2007 à 17:34:51    

Juste pour rajouter les espaces, il suffit de faire:

^-[\d ]{0,19}(\,\{0,4})?$


Mais ça va pas te plaire, car du coup la regex valide:  un chiffre, 17espaces, un chiffre.
Bon tu as moyen de le faire via un regex, mais typiquement ce genre de contrôles sur le format d'un nombre ne se fait pas via une regex. Je connais pas  C# pour me prononcer, mais je suis persuadé qu'il y a une fonction fournie kivabien.

 

Si tu tiens vraiment à le faire via une regex, ça donnerait un truc dans le genre ( absolument pas garanti hein, c'est de tête):

^-?\d{1,3}( \d{3}){0,5}(\,\d{0,4})?


Sauf que le 0,5 te bloquerais à 18 max et pas 19.
Mais faire 19 c'est trop la misère du coup :)

Message cité 1 fois
Message édité par anapajari le 22-08-2007 à 17:35:38
Reply

Marsh Posté le 22-08-2007 à 17:56:16    

anapajari a écrit :

Juste pour rajouter les espaces, il suffit de faire:

^-[\d ]{0,19}(\,\{0,4})?$


Mais ça va pas te plaire, car du coup la regex valide:  un chiffre, 17espaces, un chiffre.
Bon tu as moyen de le faire via un regex, mais typiquement ce genre de contrôles sur le format d'un nombre ne se fait pas via une regex. Je connais pas  C# pour me prononcer, mais je suis persuadé qu'il y a une fonction fournie kivabien.
 
Si tu tiens vraiment à le faire via une regex, ça donnerait un truc dans le genre ( absolument pas garanti hein, c'est de tête):

^-?\d{1,3}( \d{3}){0,5}(\,\d{0,4})?


Sauf que le 0,5 te bloquerais à 18 max et pas 19.
Mais faire 19 c'est trop la misère du coup :)


 
ça à l'air assez galère à faire et comme je touche pas trop en expression régulière   :(  
je vais partir sur ces pistes et voir ce que je peux faire merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed