Скорее всего, вы хотите создать какое-то выражение, не совсем точно, но, возможно, похожее на
^\.?(?:(?:\d{1,3}[,. ])*\d{1,3}(?:\.\d{2})?|\d+\.\d+|\d+)\.?$
Один из способов разработки, который заключается в том, чтобы искать ваш самый сложный шаблон, написать выражение, изменить, затем продолжитьк вашему простейшему образцу.
Я только что добавил два \.?
в начале и конце выражения, но это не совсем правильно, вы будете включать их вездеты хочешь
Если вы хотите упростить / изменить / изучить выражение, это было объяснено на верхней правой панели regex101.com . Если хотите, вы также можете посмотреть в эту ссылку , как она будет сопоставляться с некоторыми примерами входных данных.
RegEx Circuit
jex.im визуализирует регулярные выражения: