Quote Originariamente inviata da and_esp Visualizza il messaggio
prova questo;
[0-9]*(.[0-9]*)?
Ovviamente devi negare e cioè if !(Match(regex)) then trovato else non trovato ....Saluti*
con questa mi dà errore sulla stringa 'abcd', in pratica me la trova come falso positivo per 4 volte (una per carattere). Inoltre non funziona se il separatore è la virgola (dagli esempi che ha postato credo che per lui il float sia da considerare tale a prescindere dal separatore)

utilizzerei questa espressione:
codice:
^\d{1,}[.,]{0,1}\d{0,}$
che funziona anche per un caso estremo come questo
1,2,45

Anche questa va negata (if(!preg_match... ecc ecc)

Il risultato che ho ottenuto è stato questo:
123,123 //float
123.123 //float
123 //float
123$ //non float
abcd //non float
1,2,45 //non float