Expresiones regulares en PHP

Muchas veces en PHP necesitamos usar expresiones regulares para encontrar valores en un texto o para validar entradas, lo cual resulta a veces tedioso porque uno suele olvidarse rápidamente como es que se usan las expresiones regulares y cuales son los simbolos y reglas que debemos utilizar. En este articulo es un guia rápida para refrescar la memoria en todo momento.

Funciones php para manejar expresiones regulares

ereg – Coincidencia de expresiones regulares
eregi – Coincidencia de expresiones regulares sin diferenciar mayúsculas y minúsculas
preg_match – Realizar una comparación de expresión regular
Tipo de Operador
Ejemplo
Descripción
Caracteres literales
Localización de un carácter concreto
a A y 6 % @
Letras, digitos y cualquier carácter especial
\$ \^ \+ \\ \?
Precede un caracter especial con el signo \ para cancelar su significado
\n \t \r
Nueva linea, tabulación y retorno de carro
\cJ \cG
Códigos de control
\xa3
Códigos hexadecimales
Delimitadores
^
Empieza con
$
Termina con
Grupo de carácteres
[aAeEiou]
cualquier carácter incluído en [ ]
[^aAeEiou]
cualquier carácter excepto aAeEiou
[a-fA-F0-9]
cualquier carácter hexadecimal (’0′ a ’9′ o ‘a’ a ‘f’)
.
cualquier carácter
[[:space:]]
cualquier espacio (espacio \n \r o \t)
[[:alpha:]]
cualquier letra
[[:digit:]]
cualquier digito
[^[:space:]]
cualquier carácter que no sea un espacio
Agrupaciones aplicadas a elementos
+
1 o mas (”algunos”)
*
0 o mas (”quizas algunos”)
?
0 0 1 (”quizas a”)
{4}
4 exactos
{4,}
4 o más
{4,8}
entre 4 y 8
 
Alternar
|
una u otra
Agrupando
( )
agrupación almacenandola a una variable
(?: )
agrupacion sin almacenar en variable

Patrones útiles:

* D.N.I.: ^\d{1,8}$
* Entero: ^(?:\+|-)?\d+$
* Real: ^(?:\+|-)?\d+\.\d*$
* Hora: ^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$
* Fecha: ^([012][1-9]|3[01])(/|-)(0[1-9]|1[012])\2(\d{4})$
* Email: (^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@ ([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$
* HTML Tags: ^\<[^\>]#\>$
* LINK: <a[^>]*href="[^\s"]+"[^>]*>[^<]*<\/a> 
* IP:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
* Nombre: ^[a-zäöü ][a-zäöüß ]{2,} [a-zäöü\-\.][a-zäöüß\-\.]{2,}$
* Calle: ^[a-zäöüß ]([a-zäöüß ]\-?)+[a-zäöüß ]\.? \d{1,3}\w?$
* URL: ^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|
jobs|mil|museum|name|nato|net|org|pro|travel)$
* ZipCode: ^\d{5}$

This entry was posted in PHP. Bookmark the permalink.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>