2014-11-28 8 views
0

я нужно настроить регулярное выражение, которое совпадает как следующий номер: 6,4 1,22Regex для числа без знака (поплавка и целого числа)

число должно быть без знака, interger или поплавок, и максимальное числа 2 десятичного. У меня проблемы, как это возможно?

+0

То, что кажется проблемой? Вам нужна одна или несколько цифр, за которой следует необязательная десятичная запятая, за которой следует от 0 до 2 цифр. –

+0

См. Http://www.regular-expressions.info/floatingpoint.html Уточнить инструмент (регулярные выражения разные в разных инструментах). – Tobias

ответ

0

Попробуйте это:

"^\d+\.?\d*$" 

^= начало $ = конечная \ г = число . = точка ? = Необязательный последний маркер + = один или более * = ноль или более

+0

max 2 десятичные точки –

2

Да можно

(?:\d*\.)?\d+ 

это больше соответствует вашему вопросу

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

спичек: 1, 1.2 , 1,23, 0,45, но не .678 или 9.101

+0

Это позволяет мне только цифру «d». Все остальное упало ... – Johan

+0

разрешить цифру? где вы используете регулярное выражение? –

0
\d+(\.\d{1,2})? 

Это allo все ваши дела и ничего больше.

  • ? после вещей делает их необязательными
  • \d соответствует любой цифре
  • + после вещей означает, что нужно быть один или несколько из них
  • . матчи все символы, поэтому он бежал сюда, чтобы соответствовать буквальная точка

Я использовал скобки здесь, чтобы сделать полную десятичную часть, начиная с точки опционально. Цифры в фигурных скобках означают, что эти значения предыдущего токена разрешены, поэтому мы допускаем здесь одну или две цифры.

Важное значение имеет +, поэтому пустые строки не совпадают.

Если вам это нужно, чтобы быть единственным в строке также добавить ^ и $ так:

^\d+(\.\d{1,2})?$ 
Смежные вопросы