PHP/Programmazione/Regexp: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
m fix
→‎Ottenere dei dati: aggiunto link per backfreference
Riga 36:
In PHP una regex deve essere definita in una stringa di testo che inizia e finisce con "/" per far capire al motore che quella è una regex e non testo qualunque. La funzione <code>preg_match</code> prende il primo parametro (la regex), lo confronta col secondo (il testo) e assegna il risultato alla variabile indicata come terzo parameetro (nel nostro caso <code>$risultato </code>, che noi mostriamo con la funzione <code>print_r</code>).
 
La variabile di risultato conterrà il testo associato dall'intera regex e l'evenutale testo dei cosidetti [http://en.wikipedia.org/wiki/Backreference#backreferences|''backreference''] indicati tra le parentesi (nel nostro caso rispettivamente $risultato[0] e $risultato[1]). La prima parentesi non viene restituita come ''backreference'' solo perché è stato utilizzato il modificatore <tt>?:</tt> che indica al motore delle regex di non contare quelle determinate parentesi per le ''backreference'' (ciò serve per rendere la regex più veloce).
 
Perché, però, non prende anche image:hello? Perché preg_match restituisce solo la prima occorrenza, per ottenerle tutte bisogna usare preg_match_all: