informaticaPC

Tutorial de PHP

Reemplazar texto usando Expresiones Regulares

Reemplazar texto en una cadena usando expresiones regulares (PCRE)

Usaremos la función preg_replace(), en cuyo primer parámetro indicaremos el patrón de caracteres para realizar la búsqueda, en el segundo parámetro la cadena de texto con la que deseamos reemplazarla, como tercer parámetro pondremos la cadena de texto en la que realizarán las operaciones, y en el cuarto parámetro el número máximo de modificaciones que se podrán realizar (si no lo indicamos, se reemplazarán todas las coincidencias encontradas):

<?php
    // Cadena de caracteres:
    $cadena = "gratis Cursos gratis de informática GRATIS";

    // Patrones:
    $patron01 = "/gratis/";
    $patron02 = "/gratis/i";

    echo "CADENA: [".$cadena."]<br />";
    echo "Cadena modificada: [".preg_replace($patron01, "online", $cadena, 1)."]<br />";
    echo "Cadena modificada: [".preg_replace($patron02, "online", $cadena)."]<br />";
?>

Descargar ejemplo

Reemplazar una cadena

Información

Recuerda que las expresiones regulares de POSIX han quedado obsoletas desde la versión de PHP 5.3.0 !!

Información

Si compruebas que no te funcionan bien las expresiones regulares asegúrate de guardar el archivo con codificación UTF-8.

Más información

Vea también: [ preg_replace() ]

Reemplazar texto en una cadena usando expresiones regulares (POSIX)

Las funciones de tipo POSIX equivalentes a la del punto anterior son ereg_replace() (diferencia entre mayúsculas y minúsculas) y eregi_replace() (no distingue entre mayúsculas y minúsculas) las cuales devuelven la cadena modificada (en caso de haberse realizado cambios en la misma) o bien sin modificar (de no haberse encontrado coincidencias):

<?php
    // Cadena de caracteres:
    $cadena = "gratis Cursos gratis de informática GRATIS";

    // Patrones:
    $patron01 = "gratis";
    $patron02 = "gratis";

    echo "CADENA: [".$cadena."]<br />";
    echo "Cadena modificada: [".ereg_replace($patron01, "online", $cadena)."]<br />";
    echo "Cadena modificada: [".eregi_replace($patron02, "online", $cadena)."]<br />";
?>

Reemplazar cadena con expresiones regulares

Descargar ejemplo

Información

Recuerda que las expresiones regulares de tipo POSIX han quedado obsoletas desde la versión de PHP 5.3.0 !!

Información

Si compruebas que no te funcionan bien las expresiones regulares asegúrate de guardar el archivo con codificación UTF-8.

Ejemplo: eliminar espacios a principio y fin (PCRE)

<?php
    $cadena = "    Curso de Informática gratis  -  ";

    $patronInicio = "/^\s*/";
    $patronFin = "/\s*$/";

    $cadena = preg_replace( $patronInicio, "", $cadena );
    $cadena = preg_replace( $patronFin, "", $cadena );

    echo "[".$cadena."]";   // Devuelve: "[Curso de Informática gratis -]"
?>

Descargar ejemplo

Información

Recuerda que las expresiones regulares de tipo POSIX han quedado obsoletas desde la versión de PHP 5.3.0 !!

Información

Si compruebas que no te funcionan bien las expresiones regulares asegúrate de guardar el archivo con codificación UTF-8.

Más información

Vea también: [ preg_replace() ]

Ejemplo: eliminar espacios a principio y fin (POSIX)

<?php
    $cadena = "    Curso de Informática gratis  -  ";

    $patronInicio = "^ *";
    $patronFin = " *$";

    $cadena = ereg_replace( $patronInicio, "", $cadena );
    $cadena = ereg_replace( $patronFin, "", $cadena );

    echo "[".$cadena."]";   // Devuelve: "[Curso de Informática gratis -]"
?>

Descargar ejemplo

Información

Recuerda que las expresiones regulares de tipo POSIX han quedado obsoletas desde la versión de PHP 5.3.0 !!

Información

Si compruebas que no te funcionan bien las expresiones regulares asegúrate de guardar el archivo con codificación UTF-8.

Más información

Vea también: [ ereg_replace() ]

Expresiones regulares útiles (PCRE)

Expresiones regulares en PHP de tipo PCRE que pueden resultarte útiles:

<?php
    $patron01 = "/^[0-9]{3}\-[0-9]{3}\-[0-9]{3}$/";                 // Teléfono
    $patron02 = "/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\-[a-zA-Z]$/";       // NIF
    $patron13 = "/^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,4}$/i";    // E-Mail:
    $patron04 = "/^\d{2}\/\d{2}\/\d{4}$/";  // Fecha en formato 'dd/mm/yyyy'
    $patron05 = "/^gratis$/";               // La cadena es exáctamente 'gratis' en minúsculas
    $patron06 = "/gratis/";                 // La cadena contiene 'gratis' en minúsculas
    $patron07 = "/gratis/i";                // La cadena contiene 'gratis', en mayúsculas o minúsculas
    $patron08 = "/^[a-zA-Z\s]+$/";          // Sólo letras en mayúsculas/minúsculas, y espacios
    $patron09 = "/^[0-9]+$/";               // Sólo números. No se admite cadena vacía
    $patron10 = "/^[0-9]*$/";               // Sólo cadena vacía o números

    // Sólo letras en mayúsculas/minúsculas incluídas con tilde (no 'ñ' ni 'Ñ'), espacios y comillas simples. No admite cadena vacía:
    $patron11 = "/^[a-zA-ZáéíóúÁÉÍÓÚ]+$/";

    // Sólo letras en mayúsculas/minúsculas, acentuadas, con espacios y comillas simples. No admite cadena vacía:
    $patron12 = "/^[a-zA-ZáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙñÑ\s\']+$/";

    // Sólo cadenas vacías, o con números y/o letras en mayúsculas/minúsculas acentuadas,
    // También espacios, comillas simples, dos puntos, puntos, comas, punto y coma y guiones:
    $patron13 = "/^[0-9a-zA-ZáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙñÑ\s\'\:\.\,\;-]*$/";

    // Sólo números y letras en mayúsculas/minúsculas acentuadas. No admite cadena vacía:
    $patron14 = "/^[0-9a-zA-ZáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙñÑ]+$/";

    // Sólo números, letras en mayúsculas/minúsculas acentuadas, y espacios. No admite cadena vacía:
    $patron15 = "/^[0-9a-zA-ZáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙñÑ\s]+$/";
?>
Información

Recuerda que las expresiones regulares de tipo POSIX han quedado obsoletas desde la versión de PHP 5.3.0 !!

Información

Si compruebas que no te funcionan bien las expresiones regulares asegúrate de guardar el archivo con codificación UTF-8.

Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso