Expresiones regulares con PHP

In: php

2 ago 2010

regexp oreilly 145x150 Expresiones regulares con PHPEl otro día, hablando con los compañeros de trabajo, comentábamos que cada programador tiene su punto dévil en la programación: a unos no se les da bién las fechas, a otros las codificaciones, … Pero casi todos teníamos un punto dévil en común: las . Cada vez que un programador llega a un punto en que se tiene que utilizar las expresiones regulares… Se empieza buscando por Google, haciendo pruebas, leyendo tutoriales.

La cuestión es que eso mismo se hace la próxima vez que tocan expresiones regulares, como si nunca se aprendiesen. Así que quiero hacer un breve resumen que sirva para búsquedas básicas.

Varias sintaxis
foo La cadena “foo”
^foo “foo” al principio de la cadena
foo$ “foo” al final de la cadena
^foo$ Exactamente “foo”, sin nada más
[abc] Cualquier letra entre ‘a’, ‘b’ y ‘c’
[az] Cualquier letra minúscula
[^AZ] Cualquier letra que no sea una mayúscula
(gif|jpg) Reconoce ‘gif’ o ‘jpg’
[az]+ Una o más letras minúsculas
[0-9.-] Un número, un punto o un guión
^[a-zA-Z0-9_]{1,}$ Cualquier palabra de al menos una letra, número o _ Subrayado
([AZ]{3}|[0-9]{4}) Reconocer tres letras o números de cuatro

Unos ejemplos de verificación:

  • Dirección de email (si > 5.2.0, entonces filter_var()):
    '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/'
  • Nombre de usuario:
    '/^[az\d_]{5,20}$/i'
  • IP:
    '/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/'
  • Dominio:
    '/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i'

Vía bueltge.de

Entradas relacionadas:

  1. Funcionalidades avanzadas con las expresiones regulares
  2. Plugins para hacer tests de Regular Expressions
  3. Comprobar si un email tiene registros MX, con Zend_Validate
  4. Parsear strings en formato camelCase en PHP

1 Comentario en Expresiones regulares con PHP

CARRARO

14 agosto 2010 a las 17:57

Excelente información. Breve, pero clara

Formulario de Comentario

Página 1 de 11