0Pricing
PHP Academy · Lección

Sustitución de texto con preg_replace

Sustituya coincidencias con cadenas de reemplazo y referencias inversas.

Sustitución de texto con preg_replace es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

Firma de preg_replace()

preg_replace($pattern, $replacement, $subject) devuelve el subject con todas las coincidencias reemplazadas. Pase una matriz de subjects para procesar varias cadenas a la vez.

Reemplazo sencillo

Reemplace todos los dígitos de una cadena por un asterisco.

<?php
$result = preg_replace('/\d/', '*', 'Order #12345');
echo $result; // "Order #*****"

Referencias inversas en reemplazos

Use $1, $2... (o \1, \2) para insertar grupos capturados en la cadena de reemplazo.

<?php
$result = preg_replace('/^(\w+)\s(\w+)$/', '$2, $1', 'John Smith');
echo $result; // "Smith, John"

Referencias inversas con nombre

Puede hacer referencia a los grupos de captura con nombre como ${name} en el reemplazo.

<?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"

Reemplazo de varios patrones

Pase matrices de patrones y reemplazos para procesar varias reglas a la vez.

<?php
$result = preg_replace(
    ['/foo/', '/bar/'],
    ['baz',   'qux'],
    'foo and bar'
);
echo $result; // "baz and qux"

Parámetro de límite

El cuarto parámetro limita cuántas sustituciones se realizan. Pase -1 para no establecer un límite (valor predeterminado).

<?php
$result = preg_replace('/a/', 'X', 'banana', 2);
echo $result; // "bXnXna"

Parámetro de recuento

Pase una quinta variable para recibir el número de reemplazos realizados.

<?php
$count  = 0;
$result = preg_replace('/e/', '3', 'hello everyone', -1, $count);
echo "$count replacements"; // "3 replacements"

preg_replace_callback()

Cuando la lógica de reemplazo es compleja, use preg_replace_callback() para procesar cada coincidencia con una función anónima.

<?php
$result = preg_replace_callback(
    '/\d+/',
    fn($m) => $m[0] * 2,
    'Item: 5, Qty: 3'
);
echo $result; // "Item: 10, Qty: 6"

Ejemplo de eliminación de etiquetas HTML

Elimine todas las etiquetas HTML con una expresión regular sencilla (en producción, use strip_tags()).

<?php
$clean = preg_replace('/<[^>]+>/', '', '<b>Hello</b> World');
echo $clean; // "Hello World"

Convertir una cadena en un slug

Convierta un título en un slug compatible con 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 de rendimiento

Mantenga los patrones sencillos y evite el retroceso catastrófico. Use preg_replace_callback para transformaciones complejas en lugar de encadenar varias llamadas a preg_replace.

Diferencia con str_replace

str_replace es más rápido para reemplazos de texto sin formato. Use preg_replace solo cuando necesite la potencia de un patrón regex.

Resumen

preg_replace reemplaza todas las coincidencias de un patrón. Use referencias inversas ($1) para reutilizar grupos capturados. Use preg_replace_callback cuando la lógica de reemplazo sea dinámica.

Comprobación rápida

¿Cómo se hace referencia al primer grupo de captura en una cadena de reemplazo de preg_replace?

Preguntas frecuentes

¿La lección «Sustitución de texto con preg_replace» es gratis?

Sí — el texto completo de «Sustitución de texto con preg_replace» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Sustitución de texto con preg_replace»?

Sustituya coincidencias con cadenas de reemplazo y referencias inversas. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Sustitución de texto con preg_replace»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos de la sintaxis de expresiones regulares
  2. Coincidencias con preg_match
  3. Sustitución de texto con preg_replace
  4. División y patrones prácticos
← Volver a PHP Academy