Я предполагаю, что пустая строка допустима. Я не уверен, что понимаю ваш третий пункт; Вы имеете в виду, что n может быть чем угодно, или вам нужно ограничить количество событий n? Я также не уверен, сколько цифр должно быть на каждом конце дефиса; это номер один или больше, или точно один?
Следующее регулярное выражение допускает строку, например 1-9-129-2-293-23.
^(([0-9]+-[0-9]+)|[0-9]+)*$
Поскольку каждый подшаблон должен начинаться и заканчиваться цифрой, нет необходимости иметь совпадение цифр на каждом конце вне подстроки, как в других решениях, опубликованных здесь.