Регулярное выражение для чисел, включая десятичные дроби, разделители и знаки - + - PullRequest
1 голос
/ 10 февраля 2020

В настоящее время я пытаюсь написать регулярное выражение для чисел, включая десятичные дроби, разделители и знаки - +. Однако я столкнулся с проблемой, когда числа, начинающиеся или заканчивающиеся только разделителями или числами с запятыми, по-прежнему включаются, когда их не должно быть.

Ссылка на редактор регулярных выражений с выделением и визуальные образцы выпуска

Текущее регулярное выражение:

([-+]?[\d]*\_[\d]+)|([-+]?[\d]*\.[\d]+)|([^a-zA-Z\s\_\,][-+]?[0-9]+)

1 Ответ

1 голос
/ 10 февраля 2020

Вы можете использовать

^(?!$)[-+]?(\d*|\d+(?:_\d+)*)(?:\.\d+)?$

См. Демоверсию regex . Если вы также хотите разрешить пустые строки, удалите (?!$).

Подробности

  • ^ - начало строки
  • (?!$) - в этой точке не допускается конец строки
  • [-+]? - необязательный плюс или -
  • (?:\d*|\d+(?:_\d+)*) - 0 или более цифр или 1+ цифр с последующим _ и 1+ цифр
  • (?:\.\d+)? - необязательная последовательность . и 1+ цифр
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...