Comment faire correspondre les nombres négatifs aussi bien par cette expression régulière? Cette expression rationnelle fonctionne bien avec les valeurs positives, mais je souhaite également autoriser les valeurs négatives, par exemple. -10, -125.5 etc.
^[0-9]\d*(\.\d+)?$
Merci
Vous devez ajouter un tiret facultatif au début en ajoutant -?
(?
est un quantifier signifie une ou zéro occurrences):
^-?[0-9]\d*(\.\d+)?$
Je l'ai vérifié en Rubulaire avec ces valeurs:
10.00
-10.00
et les deux appariés comme prévu.
Quelques exemples d'expressions régulières:
Entiers positifs :
^\d+$
Entiers négatifs :
^-\d+$
Entier :
^-?\d+$
Nombre positif :
^\d*\.?\d+$
Nombre négatif :
^-\d*\.?\d+$
Nombre positif ou nombre négatif :
^-?\d*\.{0,1}\d+$
Numéro de téléphone :
^\+?[\d\s]{3,}$
Téléphone avec code :
^\+?[\d\s]+\(?[\d\s]{10,}$
Année 1900-2099 :
^(19|20)[\d]{2,2}$
Date (jj mm aaaa, j/m/aaaa, etc.):
^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$
IP v4 :
^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$
Je ne sais pas pourquoi vous avez besoin de ce premier [0-9]
.
Essayer:
^-?\d*(.\d+)?$
Mettre à jour
Si vous voulez être sûr d'avoir un chiffre à la place, utilisez
^-?\d+(.\d+)?$
J'ai quelques expériences sur le regex dans l'url de Django, qui demandait des nombres négatifs aux nombres positifs
^(?P<pid>(\-\d+|\d+))$
Nous allons nous concentrer sur cette partie (\-\d+|\d+)
et ignorer les autres, ce point-virgule |
signifieOUdans une expression rationnelle, la valeur négative correspondra à cette partie \-\d+
et la valeur positive à celle-ci \d+
Cela permettra aux entiers positifs et négatifs
ValidationExpression = "^ -? [0-9]\d * (\ d +)? $"
UPDATED (13/08/2014): C'est le meilleur code pour les nombres positifs et négatifs =)
(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}
J'ai essayé avec ces chiffres et fonctionne bien:
-1234454.3435
-98.99
-12.9
-12.34
-10.001
-3
-0.001
-000
-0.00
0
0.00
00000001.1
0.01
1201.0000001
1234454.3435
7638.98701
Cela autorisera un caractère -
ou +
uniquement s'il est suivi d'un nombre:
^([+-](?=\.?\d))?(\d+)?(\.\d+)?$
Ajoutez simplement un jeton 0 ou 1:
^-?[0-9]\d*(.\d+)?$
Expression régulière pour nombre, point décimal optionnel, négatif optionnel:
^-?(\d*\.)?\d+$;
fonctionne pour entier négatif, décimal, négatif avec décimal
^[+-]?\d{1,18}(\.\d{1,2})?$
accepte les valeurs décimales positives ou négatives.
Cela a fonctionné pour moi, permettant à la fois des nombres négatifs et positifs :
\-*\d+
Si vous utilisez C #:
Regex.Match(someString, @"\-*\d+").Value;
Pour les nombres négatifs seulement, c'est parfait.
^-\d*\.?\d+$
^(-?\d+\.)?-?\d+$
permettre:
23425.23425
10.10
100
0
0.00
-100
-10.10
10.-10
-10.-10
-23425.23425
-23425.-23425
0.234