Il modello più semplice è ovviamente quello costituito da una parola o, più in generale, da una sequenza di caratteri. È chiaro che in questo caso non è conveniente usare una delle funzioni per le espressioni regolari perchè queste sono molto "dispendiose" in termini di risorse impiegate, per cui il loro utilizzo dovrebbe essere limitato ai casi in cui non sia possibile utilizzare un'altra funzione (ad esempio, strpos(), o str_replace()).
Nella costruzione del modello, la cui corrispondenza andrà verificata, ci sono naturalmente una serie di regole da seguire, prima fra tutte quella che riguarda i cosìddetti "metacaratteri", ossia dei caratteri speciali, nel senso che, all'interno di un'espressione regolare, assumono un preciso significato. Questi caratteri sono:
Caratteristica comune a tutti questi metacaratteri è che se vogliono essere usati per il loro "valore letterale" (e non per quello speciale), devono essere preceduti da un backslash (\), per cui, ad esempio, l'esistenza di un punto interrogativo all'interno di una stringa, potrebbe essere accertata con questa espressione: \?.
Vediamo adesso di esaminare più nel dettaglio i metacaratteri, cominciando dalle varie parentesi. Le parentesi quadre [], come si è accennato, racchiudono una "classe di caratteri". Questo vuol dire che il modello può o deve contenere alcuni o tutti i caratteri in esse contenute; chiariamo il concetto con degli esempi:
[abc]
questo modello è soddisfatto quando viene trovata una delle lettere, senza tener
conto dell'ordine in cui sono presenti;
[a-z]
in questo modello è presente un intervallo di caratteri (notare il segno -, sta per "dalla a alla z"),
esso è soddisfatto quando viene trovato uno qualsiasi dei caratteri compresi nell'intervallo;
[0-9]
in questo modello è presente invece un intervallo di numeri, esso è soddisfatto quando
viene trovato uno qualsiasi dei numeri compresi nell'intervallo;
[a-z0-9\?]
questo modello è leggermente più complesso, ma dovrebbe essere di facile
comprensione. La corrispondenza viene trovata quando la stringa contiene una lettera (minuscola
in questo caso), un numero o il carattere ? (notate il segno \ prima di ?, perchè il punto
interrogativo è un carattere speciale, che qui però assumiamo per il suo valore letterale);
[^a-z]
questo modello è soddisfatto quando viene trovato un qualsiasi carattere che non sia una
lettera minuscola (notate il segno ^ che all'interno della classe, la nega);
Naturalmente una classe di caratteri può essere seguita (e normalmente lo è) da uno dei metacaratteri che indicano il numero di volte in cui uno dei caratteri in essa contenuti, deve essere presente, riprendendo l'ultimo modello:
[a-z0-9\?]?
i caratteri contenuti nella classe devono essere presenti zero o una volta;
[a-z0-9\?]*
i caratteri contenuti nella classe devono essere presenti zero o più volte;
[a-z0-9\?]{3}
i caratteri contenuti nella classe devonoo essere presenti esattamente tre volte;
[a-z0-9\?]{1,3}
i caratteri contenuti nella classe devono essere presenti da una a tre volte;
[a-z0-9\?]{3,}
i caratteri contenuti nella classe devono essere presenti minimo tre volte;
[a-z0-9\?]{,3}
i caratteri contenuti nella classe devono essere presenti massimo tre volte.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |