Sostituzione del testo con preg_replace
Sostituire le corrispondenze con stringhe di sostituzione e backreference.
Sostituzione del testo con preg_replace è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.
Firma di preg_replace()
preg_replace($pattern, $replacement, $subject) restituisce il subject con tutte le corrispondenze sostituite. Passare un array di subject per elaborare più stringhe contemporaneamente.
Sostituzione semplice
Sostituire tutte le cifre di una stringa con un asterisco.
<?php
$result = preg_replace('/\d/', '*', 'Order #12345');
echo $result; // "Order #*****"Backreference nelle sostituzioni
Utilizzare $1, $2... (oppure \1, \2) per inserire i gruppi catturati nella stringa di sostituzione.
<?php
$result = preg_replace('/^(\w+)\s(\w+)$/', '$2, $1', 'John Smith');
echo $result; // "Smith, John"Backreference denominate
I gruppi di cattura denominati possono essere referenziati come ${name} nella sostituzione.
<?php
$result = preg_replace(
'/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
'${day}/${month}/${year}',
'2025-06-15'
);
echo $result; // "15/06/2025"Sostituzione di più pattern
Passare array di pattern e sostituzioni per elaborare più regole contemporaneamente.
<?php
$result = preg_replace(
['/foo/', '/bar/'],
['baz', 'qux'],
'foo and bar'
);
echo $result; // "baz and qux"Parametro limit
Il quarto parametro limita il numero di sostituzioni effettuate. Passare -1 per un numero illimitato (valore predefinito).
<?php
$result = preg_replace('/a/', 'X', 'banana', 2);
echo $result; // "bXnXna"Parametro count
Passare una quinta variabile per ricevere il numero di sostituzioni effettuate.
<?php
$count = 0;
$result = preg_replace('/e/', '3', 'hello everyone', -1, $count);
echo "$count replacements"; // "3 replacements"preg_replace_callback()
Quando la logica di sostituzione è complessa, utilizzare preg_replace_callback() per elaborare ogni corrispondenza con una closure.
<?php
$result = preg_replace_callback(
'/\d+/',
fn($m) => $m[0] * 2,
'Item: 5, Qty: 3'
);
echo $result; // "Item: 10, Qty: 6"Esempio di rimozione dei tag HTML
Rimuovere tutti i tag HTML con una semplice regex (in produzione utilizzare strip_tags()).
<?php
$clean = preg_replace('/<[^>]+>/', '', '<b>Hello</b> World');
echo $clean; // "Hello World"Creazione di uno slug da una stringa
Convertire un titolo in uno slug sicuro per gli URL.
<?php
function slugify(string $s): string {
$s = strtolower($s);
$s = preg_replace('/[^a-z0-9]+/', '-', $s);
return trim($s, '-');
}
echo slugify('Hello World!'); // "hello-world"Nota sulle prestazioni
Mantenere semplici i pattern ed evitare il backtracking catastrofico. Utilizzare preg_replace_callback per trasformazioni complesse invece di concatenare più chiamate a preg_replace.
Differenza rispetto a str_replace
str_replace è più veloce per le sostituzioni di testo semplice. Utilizzare preg_replace solo quando serve la potenza di un pattern regex.
Riepilogo
preg_replace sostituisce tutte le corrispondenze di un pattern. Utilizzare i backreference ($1) per riutilizzare i gruppi catturati. Utilizzare preg_replace_callback quando la logica di sostituzione è dinamica.
Verifica rapida
Come si fa riferimento al primo gruppo di cattura nella stringa di sostituzione di preg_replace?
Domande Frequenti
La lezione «Sostituzione del testo con preg_replace» è gratuita?
Sì — il testo completo di «Sostituzione del testo con preg_replace» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.
Cosa imparerò in «Sostituzione del testo con preg_replace»?
Sostituire le corrispondenze con stringhe di sostituzione e backreference. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare PHP Academy?
Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Sostituzione del testo con preg_replace»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione PHP Academy?
Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Fondamenti della sintassi regex
- Corrispondenza con preg_match
- Sostituzione del testo con preg_replace
- Divisione e pattern pratici