Plantilla:PHP/ExpresionesRegulares
Contenido
Expresiones Regulares
Una expresión regular consiste en establecer un patrón o conjunto de caracteres de manera general. De esta forma podremos comprobar si una determinada expresión compuesta por una serie de caracteres concretos, cumple o no la expresión regular
Esta es una técnica extremadamente útil para verificar cualquier tipo de cadena de caracteres, por ejemplo teléfono, email, url, etc.
Es importante tener claro que una expresión regular la podemos utilizar para ver si una cadena coincide exactamente con el patrón, o solo lo continene (En este caso podría ser que empezara por una expresión o que terminara por ella, o que estuviera dentro de ella).
- A continuación algún ejemplo para exponer esta idea
Delimitadores
- A la hora de expresar una expresión regular debemos de hacerlo usando un carácter delimitador al comienzo y final; Este carácter es de elección libre
/una expresión/ //Carácter delimitador / #^[^0-9]$# //Carácter delimitador # +php+ //Carácter delimitador + %[a-zA-Z0-9_-]% //Carácter delimitador %
Expresando la expresión regular
- Para especificar las expresiones regulares se puede especificar el carácter tal cual, o usar metacaracteres y agrupamiento de caracteres
- Ver la siguiente tabla sacada de la dirección http://www.mclibre.org/consultar/php/lecciones/php_expresiones_regulares.html
Patrón | Significado |
c | carácter c |
. | - |
^c | empezar por el carácter c |
c$ | terminar por el carácter c |
c+ | 1 o más caracteres c |
c* | 0 o más caracteres c |
c? | 0 o 1 caracteres c |
\n | nueva línea |
\t | tabulador |
\ | escape, para escribir delante de caracteres especiales: ^ . [ ] % ( ) | * ? { } \ |
(cd) | caracteres c y d agrupados |
c|d | carácter c o d |
c{n} | n veces el carácter c |
c{n,} | n o más caracteres c |
c{n,m} | desde n hasta m caracteres c |
[a-z] | cualquier letra minúscula |
[A-Z] | cualquier letra mayúscula |
[0-9] | cualquier dígito |
[cde] | cualquiera de los caracteres c, d o e |
[c-f] | cualquier letra entre c y f (es decir, c, d, e o f) |
[^c] | que no esté el carácter c |
[[:alnum:]] | cualquier letra o dígito |
[[:alpha:]] | cualquier letra |
[[:digit:]] | cualquier dígito |
[[:lower:]] | cualquier letra minúscula |
[[:punct:]] | cualquier marca de puntuación |
[[:space:]] | cualquier espacio en blanco |
[[:upper:]] | cualquier letra mayúscula |
Expresiones regulares en php
Ŝon varias las funciones relacionadas con expresiones regulares en php
http://php.net/manual/es/book.pcre.php
- Usaremos la función preg_match($expresion, $cadena) para comprobar que una cadena cumple una determinada expresión regular
http://php.net/manual/es/function.preg-match.php
A continuación se proponen dos actividades para practicar con expresiones regulares
Coincidencia exacata o qué contenga=
Es muy importante diferenciar en que es distinto que una cadena coincida exactamente con una expresión regular aue una cadena cumpla una determinada expresión regular. Por ejemplo, dada la siguiente expresión regular siguiente indica que una cadena contenga 1 o más números
$exp = /[0-9]+/
- Así las cadenas observa las siguientes cadenas
$cad1 = "asdfljoieka1asdf"; //Cumple por que tiene un número $cad1 = "1"; //Cumple por que tiene un número $cad1 = "134124"; //Cumple por que tiene un número $cad1 = "asdfasdf4"; //Cumple por que tiene un número $cad1 = "asdfasd"; //No Cumple por que no tiene un número *Sin embargo si quiero que sólo contnega números, una forma de especificarlo (por supuesto hay más) <source lang=php> $exp = /^[0-9]+$/
En php el uso es muy sencillo, basta con establecer la expresión regular, y posteriormente usando el método pre_match($expresion, $cadena), verificar si la cadena cumple o no la expresión regular
http://www.mclibre.org/consultar/php/lecciones/php_expresiones_regulares.html http://php.net/manual/es/book.pcre.php Plantilla:MRM Ejercicio
Validar expresiones Regulares |
---|
|