Expresiones Regulares
Debemos entender por una expresión regular una cadena de caracteres que se encuentra con regularidad en una cadena compleja de caracteres. PHP implementa una serie de funciones para la manipulación de expresiones regulares. En esta entrega vamos a estudiar esas funciones y su utilidad en un programa de PHP.
Las funciones para la manipulación de expresiones regulares más utilizadas que podemos encontrar en PHP son:
- ereg()
- ereg_replace()
- eregi()
- eregi_replace()
Todas estas funciones toman como primer argumento la cadena o expresión regular con la que se ha de trabajar.
Empecemos:
ereg("expresión", $contenedor, $arreglo)
Encuentra coincidencias de una expresión regular dentro de una cadena.
ereg("rojo", $colores);
El ejemplo anterior devolvería verdadero (TRUE), si la cadena de caracteres "rojo" se encuentra en la variable $colores. Los argumentos que toma son: la expresión regular que se ha de buscar, la variable que contiene la cadena, un argumento opcional en el que se guardan las coincidencias.
Así, el siguiente código:
<?php
$expresion = "Rápidos corren los carros por el ferrocarril";
if(ereg("arr", $expresion, $regs)){
for($i=0; $i<=count($regs);$i++){
echo "Coincidencia $i<BR>";
}
}
?>
Nos presenta el siguiente resultado:
Como podemos ver, el programa encontró dos coincidencias de la expresión regular (o cadena) "arr" y nos lo muestra en pantalla.
ereg_replace("expresion", "reemplazo", $contenedor)
La función reemplaza una cadena por otra, contenidas dentro de la variable contenedor, de tal forma que al enviar una salida a la pantalla, se imprimirá la cadena con los reemplazos respectivos, sustituyendo a la expresión regular original.
Esto trabaja de la siguiente manera:
<?php
$expresion = "Rápidos corren los carros por el ferrocarril";
echo ereg_replace("Rápidos", "Lentos", $expresion);
?>
Produce la siguiente salida:
Como podemos ver, la expresión "Rápidos", ha sido sustituida por "Lentos".
eregi("expresión", $contenedor, $arreglo)
Encuentra coincidencias de una expresión regular dentro de una cadena sin diferenciar mayúsculas de minúsculas. Por lo demás, el funcionamiento es idéntico a ereg().
eregi_replace("expresion", "reemplazo", $contenedor)
La función reemplaza una cadena por otra, contenidas dentro de la variable contenedor, de tal forma que al enviar una salida a la pantalla, se imprimirá la cadena con los reemplazos respectivos, sustituyendo a la expresión regular original, sin distinción entre mayúsculas y minúsculas.
Esto es posiblemente lo más utilizado en cuanto a las expresiones regulares dentro de PHP, espero les sea de utilidad. En nuestra próxima entrega hablaremos de las funciones y su poderosa utilidad.
Por el momento, recuerden que como dijo Julio Verne: "Todo lo que una persona puede imaginar, otras podrán hacerlo realidad". Hagamos nuestros sueños realidad,... siempre.