Introducci n a las expresiones regulares en PHP The Bit Jazz Band
Introducción a las expresiones regulares en PHP | The Bit Jazz Band
(http://www.mmfilesi.com/)
Introducción a las
expresiones regulares en
PHP
Las expresiones regulares permiten
encontrar similitudes con un patrón
matisse
alfanumérico.
archivado en: PHP/AJAX (http://www.mmfilesi.com/blog/category/php/) || 16 marzo,
2013Hace tiempo que tenía ganas de escribir una entrada sobre expresiones
regulares en PHP (http://www.php.net/manual/es/book.pcre.php), que
una vez controladas son realmente útiles. Para ir viendo cómo
funcionan emplearé la función preg_replace($patron, $reemplazo,
$cadena) (http://php.net/manual/es/function.pregreplace.php), que
reemplaza las coincidencias de un patrón, es decir, de una expresión
regular, en una cadena.Así, por ejemplo, reemplazaríamos todas las aes de la cadena por una
R.
$cadena = "Soy una cadena con 123 números y guiones <>";
$patron = "/a/";
$reemplazo = "R";
echo preg_replace($patron, $reemplazo, $cadena);
// esto da como resultado: Soy unR cRdenR con 123 números y
guiones <>
Delimitadores de patrón
El
patrón,
en
inglés
pattern,
debe
estar
delimitado(http://www.php.net/manual/es/regexp.reference.delimiters.php)
por
unos caracteres especiales que le indiquen a PHP donde empieza y
http://www.mmfilesi.com/blog/introduccionalasexpresionesregularesenphp/
1/11
12/8/2015
Introducción a las expresiones regulares en PHP | The Bit Jazz Band
donde termina. Se puede emplear «cualquier carácter no alfanumérico,
que no sea una barra invertida, y que no sea un espacio en blanco»,
pero lo más frecuente es emplear una barra inclinada //. Lo que esté
dentro de estos dos signos es el «patrón», es decir, los caracteres que
deben coincidir (macht, en argot).
Si necesitamos que en patrón haya precisamente una barra, se puede
«escapar» con la barra invertida. (Se entiende por escapar(http://www.php.net/manual/es/regexp.reference.escape.php) que PHP
no debe leer las características especiales de ese signo, sino tratarlo
como uno más).
$cadena = "Soy una cadena con /barras/";
$patron = "/\//";
$reemplazo = "R";
echo preg_replace($patron, $reemplazo, $cadena);
// Resultado: Soy una cadena con RbarrasR
Modificadores del delimitador
La
manera
de
comportarse
del
patrón
puede
modificarse(http://www.php.net/manual/es/reference.pcre.pattern.modifiers.php)
añadiendo después del delimitador final determinados caracteres. Un
ejemplo sencillo: los patrones son por lo general case sensitive, es
decir, que se diferencia entre mayúsculas y minúsculas. Por ejemplo, de
esta manera solo coincidirían las aes mayúsculas.
$cadena = "Iba Antonio a América a andar a gatas";
$patron = "/A/";$reemplazo = "R";
echo preg_replace($patron, $reemplazo, $cadena);
// Resultado: Iba Rntonio a Rmérica a andar a gatas
Pero añadiendo el modificador i (PCRE_CASELESS) al delimitador del
patrón podemos forzarlo para que se comporte de manera case
insensitive.
$patron = "/A/i";
http://www.mmfilesi.com/blog/introduccionalasexpresionesregularesenphp/
2/11
12/8/2015Introducción a las expresiones regulares en PHP | The Bit Jazz Band
// Resultado: IbR Rntonio R RméricR R RndRr R gRtRs
Metacaracteres
La gracia de los patrones es que permiten incluir caracteres comodín,
metacaracteres en phpesiano, que permiten afinar la búsqueda. Por
ejemplo, el acento circunflejo ^ indica que la coincidencia debeencontrarse al principio de la cadena. Así, en este caso, no se produciría
ningún reemplazo, ya que la cadena empieza por S.
$cadena = "Soy una cadena con 123 números y guiones <>";
$cadena = "Soy una cadena antigua";
$patron = "/^a/";
$reemplazo = "R";
echo preg_replace($patron, $reemplazo, $cadena);
En cambio así quitaríamos la S.
$patron = "/^S/";
// Resultado: Roy una cadena antigua
Lo mismo sucede con el símbolo de ...
Regístrate para leer el documento completo.