Disegnando l'automa a stati finiti per i numeri di massimo due cifre (da 1 a 99) ed *eventualmente* due cifre decimali, verrebbe una cosa di questo tipo (senza usare i quantificatori):
Codice:
^[1-9][0-9]?([.,][0-9][0-9])?$
Il caso 100 è scomodo per l'automa perché deve prendere un path completamente diverso, forse la cosa più semplice a quel punto è mettere in OR la prima parte della Regex con la stringa "100":
Codice:
^(100|[1-9][0-9]?)([.,][0-9][0-9])?$
Comunque, se non ho fatto errori, quella sopra è una possibile alternativa
.
PS: ma il numero deve avere esattamente 0 o 2 decimali? Nel caso in cui debba avere 2 decimali esatti basta levare il "?" prima del simbolo dollaro.