^(?=.{1,15}$)\d+(,\d+)?$
^
начало строки
(?=.{1,15}$)
положительный прогноз , чтобы убедиться, что общая длина строки составляет от 1 до 15
\d+
одна или несколько цифр (ов)
(,\d+)?
необязательно с запятой и несколькими цифрами
$
конец строки (на самом деле не требуется, так как мы уже проверяли это в запросе).
Возможно, вам придется избежать обратной косой черты для Java: ^(?=.{1,15}$)\\d+(,\\d+)?$
обновление: если вы ищете это в середине другой строки, используйте границы слов \b
вместо границ строк (^
и $
).
\b(?=[\d,]{1,15}\b)\d+(,\d+)?\b
Для Java:
"\\b(?=[\\d,]{1,15}\\b)\\d+(,\\d+)?\\b"
Более читаемая версия:
"\\b(?=[0-9,]{1,15}\\b)[0-9]+(,[0-9]+)?\\b"