[Regex] pour un décimal strictement positif
Résolu/Fermé
Shadowrus
Messages postés
4
Date d'inscription
jeudi 15 novembre 2012
Statut
Membre
Dernière intervention
16 novembre 2012
-
15 nov. 2012 à 13:52
Shadowrus Messages postés 4 Date d'inscription jeudi 15 novembre 2012 Statut Membre Dernière intervention 16 novembre 2012 - 16 nov. 2012 à 11:03
Shadowrus Messages postés 4 Date d'inscription jeudi 15 novembre 2012 Statut Membre Dernière intervention 16 novembre 2012 - 16 nov. 2012 à 11:03
A voir également:
- [Regex] pour un décimal strictement positif
- Formule excel si nombre décimal ✓ - Forum Excel
- Casio fx-92 affichage décimal - Forum calculatrices
- Convertir heure en décimal excel ✓ - Forum Excel
- Casio fx 92 special college - Forum calculatrices
- Convertir heure minite en décimal ✓ - Forum Excel
1 réponse
Shadowrus
Messages postés
4
Date d'inscription
jeudi 15 novembre 2012
Statut
Membre
Dernière intervention
16 novembre 2012
1
15 nov. 2012 à 16:01
15 nov. 2012 à 16:01
Je crois avoir trouvé la solution :
N'hésitez pas si vous avez des solutions optimisées :-)
J'ai testé mon expression régulière sur ce site et elle semble bien faire ce que je veux: http://www.annuaire-info.com/outil-referencement/expression-reguliere/
^(([1-9]+(,[0-9]+)?)|([0-9]+(,[0-9]*[1-9][0-9]*)))$
N'hésitez pas si vous avez des solutions optimisées :-)
J'ai testé mon expression régulière sur ce site et elle semble bien faire ce que je veux: http://www.annuaire-info.com/outil-referencement/expression-reguliere/
15 nov. 2012 à 16:16
Je viens de regarder et avec l'expression régulière quetu nous as donné ça n'accepte rien !
Voici qui devrait être mieux :
Modifié par Shadowrus le 15/11/2012 à 16:31
Je pense que tu as laissé un espace derrière l'expression régulière quand tu l'as copiée.
Modèle testé : ^(([1-9]+(,[0-9]+)?)|([0-9]+(,[0-9]*[1-9][0-9]*)))$
Options du modèle : aucune
Chaîne 1: 1,2
Résultat : vrai
Capture 1 : 1,2
Capture 2 : 1,2
Capture 3 : ,2
Chaîne 2: 0,00001
Résultat : vrai
Capture 1 : 0,00001
Capture 2 :
Capture 3 :
Capture 4 : 0,00001
Capture 5 : ,00001
Chaîne 3: 546,21165
Résultat : vrai
Capture 1 : 546,21165
Capture 2 : 546,21165
Capture 3 : ,21165
Chaîne 4: 853
Résultat : vrai
Capture 1 : 853
Capture 2 : 853
J'ai aussi optimisé ma regexp de cette façon :
^(([1-9]+(,[0-9]+)?)|(0+(,[0-9]*[1-9][0-9]*)))$
avec cette expression, je teste si ma chaîne est un nombre décimal supérieur à 1 ou s'il s'agit d'un nombre qui commence par 0 et qui présente au moins une décimale différente de 0.
15 nov. 2012 à 17:06
Cependant ton expression régulière a beaucoup trop de captures (les parenthèses), qui parfois se chevauchent, ou pire ne sont pas égales !
Normalement tu devrais n'avoir qu'une seule capture valide, et les autres devraient être vides.
De plus je trouve dommage de ne pas accepter les zéros avant comme dans "01,2" alors que tu acceptes les zéros après comme dans "1,20". La regexp que j'avais donné acceptait ses deux exemples, et la capture était faite uniquement sur la partie utile :
16 nov. 2012 à 11:03