Regex больше нуля с 2 десятичными знаками - программирование
Подтвердить что ты не робот

Regex больше нуля с 2 десятичными знаками

Мне нужен RegEx для числового значения с точностью до двух десятичных знаков больше нуля и может иметь или не иметь нуль в одном столбце. Я также должен добавить... целые числа в порядке. См. Ниже, но там могут быть пробелы с пробелами вперед или назад

Good values:
.1
0.1
1.12
123.12
92
092
092.13

Error values:
0
0.0
0.00
00
1.234
-1
-1.2
Anything less than zero
4b9b3361

Ответ 1

Как насчет этого:

^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$

Объяснение:

^            # Start of string
\s*          # Optional whitespace
(?=.*[1-9])  # Assert that at least one digit > 0 is present in the string
\d*          # integer part (optional)
(?:          # decimal part:
 \.          # dot
 \d{1,2}     # plus one or two decimal digits
)?           # (optional)
\s*          # Optional whitespace
$            # End of string

Тест в Python:

>>> import re
>>> test = [".1", "0.1", "1.12", "123.12", "92", "092", "092.13", "0", "0.0", "0.00", "00", "1.234", "-1", "-1.2"]
>>> r = re.compile(r"^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$")
>>> for item in test:
...     print(item, "matches" if r.match(item) else "doesn't match")
...
.1 matches
0.1 matches
1.12 matches
123.12 matches
92 matches
092 matches
092.13 matches
0 doesn't match
0.0 doesn't match
0.00 doesn't match
00 doesn't match
1.234 doesn't match
-1 doesn't match
-1.2 doesn't match

Ответ 2

[0-9]+\.[0-9]{1,2}

Это найдет:

  • Как минимум одно число
  • Десятичная точка
  • Одна или две цифры после десятичной точки.

Ответ 3

/^[0-9]*(\.{1})?([0-91-9][1-9])?$/

попробуйте это, он пройдет все ваши дела

Ответ 4

Код ниже позволяет и , и . ,

^(?=.*[1-9])[0-9]*[.,]?[0-9]{1,2}$

Ответ 5

Это выражение не допускает никаких белых пробелов в начале и в конце

/^\d*(?:\.\d{1,2})*$/