Expresiones Regulares

¿Qué son?
Son expresiones que describen un conjunto de candenas Sin enumerar sus elementos.
O sea que nos permiten realizar busquedas en Strings, encontrando los patrones buscados en ellos.

¿Para qué sirven en PHP?
Nos permiten encontrar patrones especiales en cadenas, así como también afianzar la seguridad de nuestro sistema.
Generalmente se utilizan para realizar modificaciones, comparaciones e identificaciones de patrones.

¿Cómo se usan?
En PHP las utilizamos con EREG (Y sus variaciones como ereg_replace, eregi, etc).
Por ejemplo para saber si una cadena contiene sólo caracteres númericos, lo hacemos de la siguiente manera:

$string = 123456;
$string2 = "abcdef";
if (ereg("^[0-9]+$",$string)) { echo "Contiene sólo números"; }
if (ereg("^[0-9]+$",$string2)) { echo "No contiene sólo números"; }

¿Ayudan a crear un sistema seguro?
Absolutamente, recordemos que todos los campos que un usuario pueda ingresar en nuestro sistema, deben contener pura y exclusivamente lo que NOSOTROS como programadores queremos. En ese caso como anteriormente dije, si tenemos que pasar un ID mediante URL, el mismo debe ser númerico y una comprobación con expresiones regulares, hará que mediante la variable, no pase nada que no sea númerico, aumentando la seguridad ante SQL inyects.
También nos permiten saber si un usuario ingresó su nombre de manera correcta, sabemos que nadie se llama “123456″ la expresión regular bien utilizada nos permite lograr que los usuarios ingresen los campos tales y como son requeridos, quizás mienta, pero nuestros campos en la base de datos están preparados para cada tipo de datos (Si es númerico, usamos un campo númerico, si es texto, usamos text, si es un nombre usamos varchar..)

Les dejo una guia con los patrones y definiciones, así como también las fuentes consultadas.

Patrón Significado
. cualquier carácter
^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
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 (pero no vocales acentuadas, ñ, ç, etc.)
[[:alpha:]] cualquier letra (pero no vocales acentuadas, ñ, ç, etc.)
[[:digit:]] cualquier dígito
[[:lower:]] cualquier letra minúscula (pero no vocales acentuadas, ñ, ç, etc.)
[[:punct:]] cualquier marca de puntuación
[[:space:]] cualquier espacio en blanco
[[:upper:]] cualquier letra mayúscula (pero no vocales acentuadas, ñ, ç, etc.)

http://www.mclibre.org/consultar/php/lecciones/php_expresiones_regulares.html

http://es.wikipedia.org/wiki/Expresión_Regular


bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top

Deja un comentario