PHP/Programmazione/Regexp: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m →‎top: Discussioni Wikibooks:Libri stampabili, replaced: {{PHP}} → <noinclude>{{PHP}}</noinclude> using AWB
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
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 parametro (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 <ttcode>?:</ttcode> 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: