Expression régulière

Résolu
tabarrant Messages postés 40 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 27 octobre 2008 - 20 août 2008 à 09:18
tabarrant Messages postés 40 Date d'inscription lundi 21 novembre 2005 Statut Membre 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

5 réponses

cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
20 août 2008 à 14:08
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>
3
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
27 août 2008 à 11:35
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>
3
tabarrant Messages postés 40 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 27 octobre 2008
22 août 2008 à 10:19
Merci pour l'expression ainsi que pour l'explication.
0
tabarrant Messages postés 40 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 27 octobre 2008
27 août 2008 à 10:41
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
0

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

Posez votre question
tabarrant Messages postés 40 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 27 octobre 2008
28 août 2008 à 10:19
Merci encore
0
Rejoignez-nous