Expression reguliere multiples de 5

Prog1120 -  
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.

6 réponses

lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Essaie
/^(0\.)?(5|[1-9]\d*[05])(\.0)?$/
0
prog1120 Messages postés 3 Statut Membre
 
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
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
0
prog1120 Messages postés 3 Statut Membre
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

[1-9]+

Mets [1-9]* pour voir

USE c'est quoi? Je n'ai jamais entendu.
0
prog1120 Messages postés 3 Statut Membre
 
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
0