Introducción a las expresiones regulares en PHP
Las expresiones regulares son comandos para búsqueda y sustitución complejas. Permiten hacer cosas muy interesantes, pero, desafortunadamente, son bastante difíciles de aprender.
Existen varias funciones de PHP para trabajar
con expresiones regulares. Comenzaremos a familiarizarnos
con ellas usando el ejemplo de preg_replace. Esta
función acepta como primer parámetro qué cambiar,
y como segundo - por qué cambiar, y como tercer parámetro
- la cadena en la que se debe realizar el reemplazo:
<?php
preg_replace(qué cambiar, por qué, cadena);
?>
Al mismo tiempo, nuestra función acepta como primer parámetro
no solo una cadena, sino una expresión regular,
que representa una cadena con un conjunto de comandos,
ubicados dentro de los caracteres de almohadilla #.
Estas almohadillas se llaman delimitadores
de expresiones regulares.
Después de los delimitadores se pueden escribir modificadores - comandos que cambian las propiedades generales de la expresión regular.
Las expresiones regulares en sí consisten en dos tipos de caracteres: aquellos que se representan a sí mismos y aquellos que son comandos, llamados caracteres especiales.
Las letras y los números se representan a sí mismos. En el siguiente
ejemplo reemplazaremos la letra 'a' por '!'
usando una expresión regular:
<?php
preg_replace('#a#', '!', 'bab'); // devolverá 'b!b'
?>
En cambio, el punto es un carácter especial
y representa cualquier carácter. En el siguiente
ejemplo buscaremos una cadena con este patrón:
letra 'x', luego cualquier carácter, luego
nuevamente la letra 'x':
<?php
preg_replace('#x.x#', '!', 'xax eee'); // devolverá '! eee'
?>
Se da la cadena:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Escriba una expresión regular que encuentre las cadenas
'ahb', 'acb', 'aeb'
según el patrón: letra 'a', cualquier carácter,
letra 'b'.
Se da la cadena:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Escriba una expresión regular que encuentre las cadenas
'aeeb', 'adcb', 'axeb'
según el patrón: letra 'a', dos caracteres cualesquiera,
letra 'b'.