Quando si parla di formattazione del contenuto di un testo qualunque sia il linguaggio si parla fondamentalmente di espressioni regolari o regular expression ma che cosa sono di preciso? Beh prendendo la definizione direttamente da wikipedia.

Una espressione regolare è una sequenza di simboli, tipicamente una stringa che identifica un insieme di caratteri. Differenti programmi diversi supportano notazioni diverse per esprimere le stesse espressioni regolari, pertanto non esiste una sintassi “universale”.
Le espressioni regolari sono generalmente usate per definire linguaggi regolari, tuttavia permettono di definire anche linguaggi non regolari. I linguaggi regolari sono i linguaggi generati da grammatiche di tipo 3 e riconosciuti da automi a stati finiti. Ci fermiamo qui senza scadere troppo nell’ingegneristico che già abbiamo dato una definizione rappresentativa e di una certa complessità.

Entriamo subito nello specifico e vi parliamo quindi della funzione php per riconoscere una stringa regolare che si chiama ereg e eregi , la seconda non fa distinzione fra maiuscolo e minuscolo. Facciamo subito un esempio.

$testo= ‘le regole del PHP’;
if( ereg(’PHP’,$text)) {
echo “trovato PHP nella stringa testo”;
} else {
echo “NON trovato PHP nella stringa testo”;
}

Cominciamo ad entrare un attimo piu’ nello specifico e vediamo alcuni caratteri che ci aiuteranno meglio a caratterizzare le espressioni regolari, con tutti i simboli che permettono di lavorare su di esse.

  • • ^ indica l’inizio della stringa
  • • $ indica la fine di una stringa
  • • / rimuove il significato speciale di ^ o $ per esempio
  • • [123456789] o [1-9] riconosce una stringa che al suo interno a uno dei valori compresi fra l’1 e il 9
  • • ^[a-z]$ riconosce qualsiasi lettera minuscola
  • • ^[^a-z]$ riconosce qualisasi carattere singolo tranne una lettera minuscola
  • • ? significa il carattere precedente è opzionale
  • • Significa zero o piu’ tra i caratteri precendenti
  • • | fornisce un numero di possibili alternative

Vediamo qualche esempio per capire nello specifico il loto funzionamento effettivo.

^Ciao riconosce Ciao come stai, ma non vado via. Ciao
Ciao$ riconosce vado via Ciao, ma non Ciao come stai

Analizziamo adesso un po’ meglio il simobolo ?

case?tta Riconosce case e casette ma non casse
case*tta Riconosce case , casettatta casettattatta etc.
case(tta|ttina) riconosce casetta o casettina

Funzioni Correllate

Guida Integrale a tutte le funzioni PHP