Originariamente inviato da pyotrex
Questo funziona



Per chi non ha familiarità con le espressioni regolari, il 4 è il numero di cifre che vogliamo dopo la virgola

Grazie drAlberT
uhmm non proprio :-)

codice:
'^[0-9]{1,4 }\.[0-9]{0,2}$'
sta per:

^ "inizio stringa"

[xyz] è un atomo che equivale ad uno qualsiasi dei caratteri elencati

[a-d] è un atomo che corrisponde alla sequenza dei caratteri da "a" a "d"

[0-9] sono quindi "un numero qualsiasi"

{n,m} indica una ripetizione; l'atomo precedente può venir ripetuto da un minimo di n ad un max di m volte

{1,4} indica da 1 a 4 ripetizioni

\. match-a il carattere ".", visto che . match-a "qualsiasi carattere"

$ indica il "fine stringa"

Detto questo è da notare che la regexp non è ancora perfetta, visto che ammette come buona la stringa "1234."

la regexp corretta è:

codice:
'^[0-9]{1,4 }(\.[0-9]{0,2})?$'
ovvero:
(\.[0-9]{0,2}) è la sottoespressione che match-a "virgola e decimali" e che deve essere presente 0 o 1 volta ("?" è lo stesso di "{0,1}")