RegEx сопоставление числовых значений с или без разделителей тысяч - PullRequest
7 голосов
/ 06 июня 2011

Мне нужен RegEx, чтобы соответствовать следующему:

1.234.567
-1.234.789
1234567
-1234567

Не должно совпадать:

.123     (leading separator)
123..456 (two separators)

Другими словами, мне нужно, чтобы RegEx соответствовал long числовым значениям, отформатированным с разделителями тысяч или без них.

Спасибо!

Ответы [ 2 ]

9 голосов
/ 06 июня 2011

Вот более ограниченный ответ

^-?(?!0)(?:\d+|\d{1,3}(?:\.\d{3})+)$

См. Онлайн здесь на Regexr

(?!0) предотвращает запуск с 0

\d+ разрешает числа без разделителя

\d{1,3}(?:.\d{3})+ является частью для сепаратора. Начните с 1 до 3 цифр, затем разделитель и 3 цифры. Точка для разделителя, за которой следуют 3 цифры, может повторяться.

2 голосов
/ 06 июня 2011

Вы можете сделать что-то вроде

^-?([0-9]{1,3}\.?)+$

RegExr Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...