uhmm non proprio :-)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
![]()
sta per:codice:'^[0-9]{1,4 }\.[0-9]{0,2}$'
^ "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 è:
ovvero:codice:'^[0-9]{1,4 }(\.[0-9]{0,2})?$'
(\.[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}")