Ну, вы можете просто добавить еще два случая для пропущенных чисел ... начиная с вашего исходного регулярного выражения,
[-+]?((\d{1,2}\.?\d{0,1}[1-9])|(\d{0,1}[1-9])|(\d0)|([1-9]\d\.00)|(\d[1-9].00))
Кстати, а не \d{1,2}
кажется немного лучше написать \d\d?
; аналогично \d?
, а не \d{0,1}
.
В любом случае это похоже на упражнение на боль. Разве вы не можете использовать регулярное выражение, чтобы убедиться, что это число в нужном вам формате, и использовать отдельное ограничение, чтобы оно не было нулевым?