Вот общий шаблон регулярных выражений, который должен работать:
^\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*$
Демо
Количество \d+(?:-\d+)?
соответствует одномуили более цифр, за которыми необязательно следует дефис, а затем одна или несколько других цифр.Затем мы добавляем это в конец шаблона:
(?:,\d+(?:-\d+)?)*
Это соответствует запятой, за которой следует другая группа цифр / диапазонов цифр, ноль или более раз.
Обратите внимание, что ^
и $
привязки могут не понадобиться в вашем коде Java, если вы используете, например, String#matches
, который автоматически добавляет эти привязки.