Substituição de texto com preg_replace
Substitua correspondências com textos de substituição e referências anteriores.
Substituição de texto com preg_replace é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
Assinatura de preg_replace()
preg_replace($pattern, $replacement, $subject) retorna a cadeia com todas as correspondências substituídas. Passe uma matriz de cadeias para processar várias cadeias de uma só vez.
Substituição simples
Substitua todos os dígitos de uma cadeia por um asterisco.
<?php
$result = preg_replace('/\d/', '*', 'Order #12345');
echo $result; // "Order #*****"Referências retroativas na substituição
Use $1, $2... (ou \1, \2) para inserir grupos capturados na cadeia de substituição.
<?php
$result = preg_replace('/^(\w+)\s(\w+)$/', '$2, $1', 'John Smith');
echo $result; // "Smith, John"Referências retroativas nomeadas
Os grupos de captura nomeados podem ser referenciados como ${name} na substituição.
<?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"Substituição de vários padrões
Passe matrizes de padrões e substituições para processar várias regras de uma só vez.
<?php
$result = preg_replace(
['/foo/', '/bar/'],
['baz', 'qux'],
'foo and bar'
);
echo $result; // "baz and qux"Parâmetro de limite
O quarto parâmetro limita quantas substituições são feitas. Passe -1 para um número ilimitado (padrão).
<?php
$result = preg_replace('/a/', 'X', 'banana', 2);
echo $result; // "bXnXna"Parâmetro de contagem
Passe uma quinta variável para receber o número de substituições feitas.
<?php
$count = 0;
$result = preg_replace('/e/', '3', 'hello everyone', -1, $count);
echo "$count replacements"; // "3 replacements"preg_replace_callback()
Quando a lógica de substituição é complexa, use preg_replace_callback() para processar cada correspondência com uma função anônima.
<?php
$result = preg_replace_callback(
'/\d+/',
fn($m) => $m[0] * 2,
'Item: 5, Qty: 3'
);
echo $result; // "Item: 10, Qty: 6"Exemplo de remoção de tags HTML
Remova todas as tags HTML com uma expressão regular simples (use strip_tags() em produção).
<?php
$clean = preg_replace('/<[^>]+>/', '', '<b>Hello</b> World');
echo $clean; // "Hello World"Gerar um slug para uma cadeia
Converta um título em um slug seguro para 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"Observação sobre desempenho
Mantenha os padrões simples e evite retrocessos catastróficos. Use preg_replace_callback para transformações complexas em vez de encadear várias chamadas a preg_replace.
Diferença em relação a str_replace
str_replace é mais rápida para substituições de texto simples. Use preg_replace somente quando precisar dos recursos de um padrão de expressão regular.
Resumo
preg_replace substitui todas as correspondências de um padrão. Use referências retroativas ($1) para reutilizar grupos capturados. Use preg_replace_callback quando a lógica de substituição for dinâmica.
Verificação rápida
Como você referencia o primeiro grupo de captura na cadeia de substituição de preg_replace?
Perguntas Frequentes
A aula “Substituição de texto com preg_replace” é grátis?
Sim — o texto completo de “Substituição de texto com preg_replace” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Substituição de texto com preg_replace”?
Substitua correspondências com textos de substituição e referências anteriores. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Substituição de texto com preg_replace”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos da sintaxe de expressões regulares
- Correspondência com preg_match
- Substituição de texto com preg_replace
- Divisão e padrões práticos