Salve ragazzi come da titolo, ho un bel problema con una espressoine regolare.

A me serve un controllo su un campo

in pratica devo accettare numeri negativi e positivi di massimo 19 cifre e al massimo una cifra decimale.

in parte ho risolto il mio problema con questa espressione regolare.

^(0|0,([0-9]{1,1})|[1-9]([0-9]+)?|-[0-9]([0-9]+)?)((,[0-9]{1,1})?)$

con questa becco tutti i numeri positivi e nagativi con al massimo una cifra decimale.

Il problema e che non riesco a fare in modo che sia limitata a un massimo di 19 numeri interi e al massimo 1 decimale. Mi potete aiutare???