| Regresar | Temario | Ing. Angel Castro (UNAM - DGSCA Centro Coapa) |
Expresiones Regulares (Regular Expressions)
Las expresiones regulares son cadenas que utilizan caracteres especiales (wildcards) para hacer busquedas de cierto patron de otra cadena a analizar. Se podria decir tambien que es un peque~o sublenguaje que describe como debe de estar formada cierta cadena a partir de un patron utiliando caracteres especiales que dan un significado.
Supongamos que queremos verificar si una variable contiene una direccion de internet valida, la condicion basica es que la cadena comienze con www y termine con com. por lo que un patron para hacer coincidir eso seria:
^www\.[a-z]+\.com$
Este patron representa que la cadena a analizar debe de contener al inicio (^) de la cadena www seguida del . (el '.' se escapa con el caracter '\' por ser caracter especial) luego decimos que cualquier letra de la a a la z, y que esto exista (+) al menos 1 vez y hasta n-veces por ultimo decimos que la cadena debe terminar ($) con ".com"
La funcion para utilizar estos patrones en PHP se llama ereg, esta funcion regresa falso si no encontro el patron dentro de la cadena, tambien podemos utilizar eregi que es lo mismo pero sin sensibilidad a las mayusculas/minusculas, la sintaxis para ambos es:
ereg(patron,cadena);
Los patrones son muy parecidos a los utilizados en Perl, a continuacion hago un resumen de los caracteres especiales. Recuerde tambien que todos los caracteres hacen "match" 1 a 1 con el caracter correspondiente excepto los especiales que se mencionan a continuacion:
|
. (punto)
|
representa cualquier caracter |
|
[]
|
Opciones/Rango de Caracter |
|
^
|
Hace match al inicio de la cadena unicamente |
|
$
|
Hace match al final de la cadena unicamente |
|
+
|
Hace match de 1 a n-veces la expresion anterior |
|
*
|
Hace match de 0 a n-veces la expresion anterior |
|
?
|
Hace match 0 ó 1 veces la expresion anterior |
|
{m-n} {m,n}
|
Hace match de m-n o m,n veces la expresion anterior |
|
\
|
El caracter que este acontinuacion perdera su significado especial |
Ejemplos
El siguiente ejemplo en PHP verifica que sea una fecha valida:
if (!ereg ("[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}", $date)
{
echo "Fecha invalida";
exit ();
}