Expression régulière [Résolu]

Messages postés
40
Date d'inscription
lundi 21 novembre 2005
Dernière intervention
27 octobre 2008
- - Dernière réponse : tabarrant
Messages postés
40
Date d'inscription
lundi 21 novembre 2005
Dernière intervention
27 octobre 2008
- 28 août 2008 à 10:19
Bonjour,

Voila j'ai un petit souci concernant l'expression d'un expression régulière,
 j'aimerais tester si une string est bien un nombre donc j'ai utilisé l'expression ^[0-9]+$ mais il ne prenais pas les double en consideration alors je l'ai changer par ^[0-9]+.[0-9]{0,1,2}$ mais ca ne donne rien n'ont plus.

j'ai lu quelques petites notes sur le sujet mais ca m'a pas beaucoup aider malheureusement.
j'aimerais une expression qui valide un nombre autant un entier q'un double avec un point pour séparateur de décimale.
Donc qui me validerait 1236 ou 123.32 mais pas 12,12 et pas de o45.2.

Merci d'avance
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Dernière intervention
18 octobre 2008
6
3
Merci
Salut,

Une mine d'informations pour les expressions régulières (pas toujours simples à écrire) : http://www.regular-expressions.info/
Dans la page sur le matchage des nombres, on retrouve les expressions suivantes, plus ou moins complexes en fonction de ce qu'on veut parser :
<tt class="regex">[-+]?[0-9]*\.?[0-9]*  => pour les nombres avec une virgule
</tt><tt class="regex">^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$  => pour les nombres avec une virgule et une partie en notation exponentielle optionnelle

Pour les entiers, la syntaxe est :
[-+]?[0-9]+

donc en combinant les deux on arrive à :

^[-+]?(</tt><tt class="regex">([0-9]+)|(</tt><tt class="regex">[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?</tt><tt class="regex">))$</tt>
<tt class="regex">|-----||-------|-----------------------------------||
 Signe  Entier (ou)           Double

</tt>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_niky
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Dernière intervention
18 octobre 2008
6
3
Merci
Est-ce que comme cela ça marche mieux ?

^([-+]?(<tt class="regex">([0-9]+)|(</tt><tt class="regex">[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?</tt><tt class="regex">))</tt><tt class="regex">)?</tt><tt class="regex">$</tt>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_niky
Messages postés
40
Date d'inscription
lundi 21 novembre 2005
Dernière intervention
27 octobre 2008
0
Merci
Merci pour l'expression ainsi que pour l'explication.
Commenter la réponse de tabarrant
Messages postés
40
Date d'inscription
lundi 21 novembre 2005
Dernière intervention
27 octobre 2008
0
Merci
Salut,

Voila j'ai encore une petite question concernant les expressions régulières.
En fait j'ai un TextBox et je peux soit rien ecrire dedans, soit un nombre; donc zero ou une occurence.

J'ai lu que pour faire ça, il y avait Les symboles quantificateurs. celui qui m'interessent est le ? (Indique 0 ou une occurence du caractère ou de la classe précedente)

Donc j'ai mis  (^[-+]?(<tt class="regex">([0-9]+)|(</tt><tt class="regex">[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?</tt><tt class="regex">))$)?  ==> mais ca n'as pas l'air de fonctionner!!</tt>

Merci d'avance
Commenter la réponse de tabarrant
Messages postés
40
Date d'inscription
lundi 21 novembre 2005
Dernière intervention
27 octobre 2008
0
Merci
Merci encore
Commenter la réponse de tabarrant

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.