Expression reguliere multiples de 5
Prog1120
-
prog1120 Messages postés 3 Statut Membre -
prog1120 Messages postés 3 Statut Membre -
Bonjour,
Je sais que l'expression régulière d'un réel ou entier multiple de 5 est de la forme:
/^ [+/-] ? [\d]+ ([\.][0-9])? [05] $.
Cette expression régulière accepte les entiers ou réels multiples de 5.Mais elle accepte aussi 0 et 0.0
Je voudrais savoir comment écrire cette expression pour qu'elle n'accepte pas de valeurs nulles (0 ou 0.0)
mais accepte par exemple(0.5 ,50.0 ou 100.0).
Merci de votre aide.
Je sais que l'expression régulière d'un réel ou entier multiple de 5 est de la forme:
/^ [+/-] ? [\d]+ ([\.][0-9])? [05] $.
Cette expression régulière accepte les entiers ou réels multiples de 5.Mais elle accepte aussi 0 et 0.0
Je voudrais savoir comment écrire cette expression pour qu'elle n'accepte pas de valeurs nulles (0 ou 0.0)
mais accepte par exemple(0.5 ,50.0 ou 100.0).
Merci de votre aide.
Configuration: Windows Vista Firefox 3.0.7
6 réponses
-
Salut,
Essaie/^(0\.)?(5|[1-9]\d*[05])(\.0)?$/
-
Bonjour!!
Merci d'avoir répondu à ma question !!
Seulement cette expression régulière ne marche pas.Elle n'accepte aucun nombre valide:'5' ,'10' , '105' ,'5550' ,100.0' ,10505.0000'.
Mais pour les nombres nuls elle fonctionne correctement.!!
Une autre suggestion serait la bienvenue!!
Merci d'avance
XXXXX -
Re,
Il faut préciser avec quel outil. Je teste avec perl.perl -e '"105"=~/^(0\.)?(5|[1-9]\d*[05])(\.0*)?$/ and print "ok\n"' ok perl -e '"5550"=~/^(0\.)?(5|[1-9]\d*[05])(\.0*)?$/ and print "ok\n"' ok perl -e '"100.0"=~/^(0\.)?(5|[1-9]\d*[05])(\.0*)?$/ and print "ok\n"' ok perl -e '"10505.0000"=~/^(0\.)?(5|[1-9]\d*[05])(\.0*)?$/ and print "ok\n"' ok
-
Merci Lami20j de répondre à mes questions!!
J'utilise l'outil USE et voici l'expression que j'ai obtenue finalement :
"^ [1-9]+ [0-9]* ([.][0-9]*) ? [05] $"
Lorsque j'effectue les tests sur les chaines suivantes:'5' ,'10' , '105' ,'5550' ,100.0' ,10505.0000'.
Toutes les autres chaines sont acceptées sauf le 5 .
Mercii -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Re,
[1-9]+
Mets [1-9]* pour voir
USE c'est quoi? Je n'ai jamais entendu. -
RE,
Avec [1-9]* cela marche parfaitement,mais un autre probleme:l'expression accepte 0 et 010 à cause de '*':(0 ou plusieurs occurences) alors qu'il ne devrait pas accpeter de 0 ou de chaine qui commence par zero...
Merci