Introduzione alle espressioni regolari

aiuto per creare siti web dinamici con o senza l'utilizzo di database
Autore Messaggio
 Oggetto del messaggio: Introduzione alle espressioni regolari
MessaggioInviato: mar lug 22, 2008 10:25 pm 
Avatar utente
Non connesso
Founder
Founder

Iscritto il: gio ago 09, 2007 11:35 am
Messaggi: 1430
Località: Roma
Genere: Uomo
A volte è necessario verificare le caratteristiche delle stringhe di caratteri, invece di una corrispondenza esatta con una stringa specifica.
In tal caso si confronta una stringa con un schema, chiamato "espressione regolare", a volte nota come "regex".

Una regex è composta da caratteri speciali e/o caratteri normali. I caratteri speciali hanno un loro univoco significato. Se si volesse utilizzare un carattere speciale come un carattere normale bisognerà farlo precedere da uno slash rovesciato \, operazione nota come "escape".

vediamo il significato

CarattereSignificato
^Inizio riga
$Fine riga
?Il carattere precedente è opzionale
.Qualsiasi singolo carattere
( )Racchiude una sezione dello schema in un sottoschema
-Raggruppa tutti i caratteri tra due letterali
+Uno o più elementi di quelli precedenti
{n}Ripete n volte
|Separa stringhe letterali alternative
*0 o più elementi precedenti
{n1,n2}Specifica un intervallo di ripetizioni
[]RAcchiude un set di caratteri opzionali
[^]Racchiude un set di caratteri opzionali che non si devono trovare nella stringa


Non stiamo parlando di noccioline, lo so, è un argomento molto complesso, vediamo se qualche esempio può essere utile per capire qualche cosa.

Avete presente le sigle per indicare la provincia, ad esempio RM ?
La regex sarà così ^[A-Z]{2}$ ossia una stringa composta da 2 caratteri maiuscoli :ok:
Un indirizzo mail ?
.+@.+\.(com|net|it) ossia una stringa che contiene qualsiasi carattere letterale, una chiocciola, un punto(e qui usiamo l'escape) e un provider che termina con com o net o it.

con un pò di pratica possiamo arrivare ad utilizzare questo strumento veramente potente per i nostri sciptini.

come fare per utilizzarli ?
E' possibile confrontare la stringa che c'interessa con la regex attraverso la funzione ereg()

ad esempio se vogliamo verificare che un dato numero sia un codice postale dovremo comportarci nel seguente modo

Codice: Seleziona tutto
I codici sono visibili solo agli utenti di Atlantide, registrati e avrai pieno accesso alle nostre risorse


utilizziamo var_dump() per vedere i risultati di $result e $regs :ciao:

_________________
Immagine
Immagine

Cercasi volti nuovi per lo staff di Atlantide, fai la tua richiesta oggi stesso :mrgreen:


Profilo
 WWW E-mail  
 
 Oggetto del messaggio: Re: Introduzione alle espressioni regolari
MessaggioInviato: dom lug 27, 2008 1:14 pm 
Avatar utente
Non connesso
Apprendista
Apprendista

Iscritto il: gio giu 19, 2008 12:56 pm
Messaggi: 36
Località: Creta
Il "?" cosa sta a significare?


:gufo:

_________________
Quando l'acqua scorre sotto i ponti


Profilo
  
 
 Oggetto del messaggio: Re: Introduzione alle espressioni regolari
MessaggioInviato: dom lug 27, 2008 1:19 pm 
Avatar utente
Non connesso
Founder
Founder

Iscritto il: gio ago 09, 2007 11:35 am
Messaggi: 1430
Località: Roma
Genere: Uomo
hai ragione, non l'ho messo nella tabella, provvedo subito :OO:

_________________
Immagine
Immagine

Cercasi volti nuovi per lo staff di Atlantide, fai la tua richiesta oggi stesso :mrgreen:


Profilo
 WWW E-mail  
 
Visualizza ultimi messaggi:  Ordina per  

Torna a Php e MySql

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti