Вот более ограниченный ответ
^-?(?!0)(?:\d+|\d{1,3}(?:\.\d{3})+)$
См. Онлайн здесь на Regexr
(?!0)
предотвращает запуск с 0
\d+
разрешает числа без разделителя
\d{1,3}(?:.\d{3})+
является частью для сепаратора. Начните с 1 до 3 цифр, затем разделитель и 3 цифры. Точка для разделителя, за которой следуют 3 цифры, может повторяться.