Как включить в это регулярное выражение отрицательные десятичные числа?
Как я могу сопоставить отрицательные числа этим регулярным выражением? Это регулярное выражение отлично работает с положительными значениями, но я хочу, чтобы оно также допускало отрицательные значения, например. -10, -125,5 и т.д.
^[0-9]\d*(\.\d+)?$
Спасибо
Ответы
Ответ 1
Вы должны добавить необязательный дефис в начале, добавив -?
(?
- quantifier, что означает одно или нулевое появление ):
^-?[0-9]\d*(\.\d+)?$
Я проверил его в Rubular с этими значениями:
10.00
-10.00
и оба соответствуют ожидаемому.
Ответ 2
Некоторые примеры регулярных выражений:
Положительные целые числа:
^\d+$
Отрицательные целые числа:
^-\d+$
Integer
^-?\d+$
Положительный номер:
^\d*\.?\d+$
Отрицательное число:
^-\d*\.?\d+$
Положительное число или отрицательный номер:
^-?\d*\.{0,1}\d+$
Номер телефона:
^\+?[\d\s]{3,}$
Телефон с кодом:
^\+?[\d\s]+\(?[\d\s]{10,}$
Год 1900-2099:
^(19|20)[\d]{2,2}$
Дата (дд мм гггг, д/м/гггг и т.д.):
^([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}$
Ответ 3
Я не знаю, зачем вам этот первый [0-9]
.
Try:
^-?\d*(.\d+)?$
Обновление
Если вы хотите быть уверены, что у вас будет цифра в одном месте, используйте
^-?\d+(.\d+)?$
Ответ 4
Это позволит использовать символ -
или +
только после следующего числа:
^([+-](?=\.?\d))?(\d+)?(\.\d+)?$
Ответ 5
ОБНОВЛЕНО (13/08/2014): Это лучший код для положительных и отрицательных чисел =)
(^-?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}
Я пробовал с этими числами и прекрасно работал:
-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
Ответ 6
Это позволит как положительные, так и отрицательные целые числа
ValidationExpression = "^ -? [0-9]\d * (\ d +) $"
Ответ 7
У меня есть некоторые эксперименты по регулярному выражению в django url, которые требуются от отрицательных до положительных чисел
^(?P<pid>(\-\d+|\d+))$
Если мы сосредоточились на этой части (\-\d+|\d+)
и игнорируем другие, эта точка с запятой |
означает OR в регулярном выражении, тогда отрицательное значение будет соответствовать этой части \-\d+
, а положительное значение - это \d+
Ответ 8
Просто добавьте токен 0 или 1:
^-?[0-9]\d*(.\d+)?$
Ответ 9
Только для отрицательного числа это идеально.
^-\d*\.?\d+$
Ответ 10
Регулярное выражение для числа, необязательная десятичная точка, необязательный минус:
^-?(\d*\.)?\d+$;
работает для отрицательного целого, десятичного, отрицательного с десятичным
Ответ 11
Это сработало для меня, позволив как отрицательные, так и положительные числа:
\-*\d+
При использовании С#:
Regex.Match(someString, @"\-*\d+").Value;
Ответ 12
^(-?\d+\.)?-?\d+$
разрешать:
23425.23425
10.10
100
0
0.00
-100
-10.10
10.-10
-10.-10
-23425.23425
-23425.-23425
0.234
Ответ 13
^[+-]?\d{1,18}(\.\d{1,2})?$
принимает положительные или отрицательные десятичные значения.