Регулярное выражение, чтобы санкционировать, что число считало десятичным символом запятую

Как я верю в регулярное выражение, которое санкционировало бы, если String:

  • число
  • [опциональная] запятая , десятичный
  • [обязательный, если он съел] другое число

Кроме того:

  • У него нет точки . как символ тысяч

Я попробовал создавать ее:

[0-9,]+[^.]

Regular expression visualization

Debuggex Demo

Но результаты:

22,33        CORRECTO
33.44        INCORRECTO
22,33...     CORRECTO // PERO DEBERIA SER INCORRECTO!!!
232.33dfdfd  CORRECTO // PERO DEBERIA SER INCORRECTO!!!

Ожидаемые результаты:

22,33        CORRECTO
225,3432     CORRECTO
33.44        INCORRECTO
22,33...     INCORRECTO
23,          INCORRECTO

18
задан 20.01.2016, 18:02
4 ответа

Попробуй с этой expresiГіn

^[0-9]+([,][0-9]+)?$

Regular expression visualization

Дебугхекс Демо

15
ответ дан 24.11.2019, 14:58
  • 1
    Не необходимо помещать запятую в класс символов (между квадратными скобками), она убегать. Запятые не имеют ningú n специальное значение в regex (это не метасимволы), которым они интерпретируются буквально. Recomendarí чтобы издавать оставляя expresió n ^[0-9]+(,[0-9]+)?$, у которых есть то же значение и не дает место в плохие интерпретации. –  Mariano 14.02.2018, 23:45

С этой expresiГіn регулировать ты санкционируешь, что они nГєmeros estГ©n отделенные запятыми для тысяч без десятичных.

[0-9]{1,3}(\,[0-9]{3})

Пример:

  • 100,000-> Правильный
  • 100-> Правильный
  • 10,00-> Неправильный
  • 10,000-> Правильный ты можешь санкционировать

в http://regexr.com/

1
ответ дан 24.11.2019, 14:58

эта deberГ, - когда ты expresiГіn,

\d+(,\d+)?

помнит, что, если ты перемещаешь это одну funciГіn как цепь, ты должен убегать диагонали, asГ-:

"\\d+(,\\d+)?"
5
ответ дан 24.11.2019, 14:58

Если я понимаю хорошо твое описание, следующая цепь была бы действительным числом:

22,

Для того, чтобы эта цепь также было принято регулярное выражение, он был бы:

    ^[0-9]+([,][0-9]*)?$

Regular expression 1 visualization

Debuggex Demo

Важно включать анкеровки (anchor) начала цепи ^ и конца цепи $.
Без анкеровки $ цепь 232.33dfdfd как правильная, когда он это не.

Если 22, это не тогда правильная цепь регулярное выражение, которое нужно использовать:

^[0-9]+([,][0-9]+)?$

Debuggex Demo

-1
ответ дан 24.11.2019, 14:58
  • 1
    jose, я hab и # 237; в выраженный плохо quiz и # 225; s, я осветлил вопрос, ответ @Kristian - та, в которой я нуждаюсь. Спасибо так или иначе. –  Jordi Castilla 20.01.2016, 18:03
  • 2
    #191; Ты уверен? Ответ @Kristian принимает 232.33dfdfd несмотря на то, что он не был должен. –  Jose Antonio Reinstate Monica 20.01.2016, 18:05
  • 3
    нет, он это не делает, это был typo, смотри биографию редактирований и мои комментарии, но спасибо!:) –  Jordi Castilla 20.01.2016, 18:06
  • 4
    Так как s и # 237; только что издал ее. Ему остается издавать ссылку в Дебугхекс Демо todav и # 237; в, но уже почти это у него есть. –  Jose Antonio Reinstate Monica 20.01.2016, 18:07
  • 5
    это сделал я сам для того, чтобы нет путаницы;) –  Jordi Castilla 20.01.2016, 18:08