- Home
- Categorie
- Coding e Sistemistica
- Coding
- Usare preg_match per espressioni regolari. Come si fa?
-
Usare preg_match per espressioni regolari. Come si fa?
Salve ragazzi
Devo usare preg_match per la verifica di una variabile che può contenere solo lettere, numeri e il punto (se volete anche case insensitive).
Chi mi aiuta a scrivere i giusti parametri nella funzione?
E' la prima volta che la uso e non riesco a venirne a capo...Grazie a tutti
-
Quindi vuoi che ti segnali se ci sono caratteri diversi da lettere, numeri e punti?
[PHP][^a-z,^0-9,^.][/PHP]
se risponde significa che ci sono caratteri diversi da quelli indicati
-
Si, io l'ho fatto così:
("/^[.a-z0-9]{3,20}$/i", $nome_foto)Pensi possa andare bene? Fino ad ora mi funziona correttamente...
-
mi pare funzioni benissimo
-
@irdg said:
.
altrimenti viene interpretato come selettore "0 o piu" anzichè come carattere
Non ho capito bene... potresti spiegarmelo in altre parole?
-
Non ho fatto in tempo a rieditare... e ho fatto un errore anche in quella precedente...
Il carattere punto normalmente significa "tutti i carattere" ma essendo inserito in un gruppo va bene anche cosi...
La tua espressione, per esattezza, trova tutto ciò che sta dopo il primo carattere non numero,lettera o punto.
Usando l'espressione senza ^ vedi tutti i singoli pezzi...
L'espressione funziona benissimo anche cosi... in ogni caso:
Trove se la stringa ha caratteri diversi da quelli indicati e se è minore di 3 caratteri o maggiore di 20.
-
@irdg said:
La tua espressione, per esattezza, trova tutto ciò che sta dopo il primo carattere non numero,lettera o punto.
Veramente mi verifica anche il primo carattere
-
Cancella tutto quello che ho detto... mi stavo perdendo...
la tua funzione è perfetta
nel dettaglio:
**^: da inizio stringa
[.a-z0-9]: contiene solo punti, caratteri o numeri
{3,20}: il blocco sopra da 3 a 20 volte
$: fino a fine stringa
i: ignora differenze tra maiuscole e minuscole
**