Expresiones Regulares - Aprendiendo con ejemplos
Hace ya un tiempo escribí un post como introducción al tema de expresiones regulares, pero me faltaba publicar algunos ejemplos simples pero aplicables, así que voy a dejar y comentar algunos.
Direcciones IP {Corregido}
(^(2([0-4][0-9])|2(5[0-5]))|^([0-1]?[0-9]?[0-9]))\.(((2([0-4][0-9])|2(5[0-5]))|([0-1]?[0-9]?[0-9]))\.){2}((2([0-4][0-9])|2(5[0-5]))|([0-1]?[0-9]?[0-9]))$
Análisis:
- (^(2([0-4][0-9])|2(5[0-5]))|^([0-1]?[0-9]?[0-9]))\. : Inicio de cadena (^), un número x que cumpla con: x >= 200 y x <= 249 (2([0-4][0-9]), ó cumpla con: x >= 250 y x <= 255 (2(5[0-5])), ó cumpla con x >= 0 y x <= 199 (([0-1]?[0-9]?[0-9])), seguido de un punto (\.)
- (((2([0-4][0-9])|2(5[0-5]))|([0-1]?[0-9]?[0-9]))\.){2} : lo mismo que el término anterior pero repetido exactamente 2 veces ({2})
- ((2([0-4][0-9])|2(5[0-5]))|([0-1]?[0-9]?[0-9]))$ : lo mismo que el primer término, pero en lugar de estar seguido de un punto, el número debe estar seguido del final de la cadena ($)
Casos de prueba:
- 0.0.0.0
- 10.10.0.1
- 192.168.0.1
- 200.40.30.245
- 255.255.255.255
Número del documento de identidad (UY)
^\d\.\d{3}\.\d{3}-\d$Análisis:
- ^\d\. : Inicio de la cadena (^), un dígito (\d) y un punto (\.)
- \d{3}\. : 3 ocurrencias de dígito (\d{3}) y un punto (\.)
- \d{3} : 3 ocurrencias de dígito (\d{3})
- -\d$ : un guión (-), un dígito (\d) y final de la cadena($)
Casos de prueba:
- 1.234.567-8
Valida el formato, no la validez del número.
URI sin parámetros
^(http://)((\w+\.)?(\w+\.)?\w+\.(\w{2,3})(\.\w{2})?)(/(\w+)(/\w+)?(\.(\w{3,4}))?)?$Análisis:
- ^(http://) : Cadena http:// ubicada al inicio (^)
- ((\w+\.)?(\w+\.)?\w+\. : 0 ó 1 ocurrencias de una cadena de caracteres seguida por un punto ((\w+\.)?), 0 ó 1 ocurrencias de una cadena de caracteres seguida por un punto ((\w+\.)?) y una cadena de caracteres seguida por un punto(\w+\.)
- (\w{2,3}) : una cadena compuesta de 2 o 3 caracteres
- (\.\w{2})? : 0 ó 1 ocurrencia de un punto (\.) seguido de una cadena compuesta de 2 caracteres (\w{2}?)
- (/(\w+)(/\w+)?(\.(\w{3,4}))?)?$ : ésta parte de la cadena es opcional, por eso está encerrada entre paréntesis y seguida del indicador de 0 ó 1 ocurrencia (?). Las partes que forman la cadena opcional son: una barra (/), seguida de una cadena de carracteres (\w+), 0 ó 1 ocurrencia de una barra (/) seguida de una cadena de caracteres (\w+), 0 ó 1 ocurrencia de un punto (\.) seguido de una cadena de 3 ó 4 caracteres (\w{3,4}) y el final de la cadena ($)
Casos de prueba:
- http://www.google.com.uy
- http://google.com.uy
- http://mail.server.com.uy
- http://www.google.com.uy/index.html
- http://myserver.com.uy/contacto.htm
- http://mail.server.com.uy/contacto/send.php
- http://www.picandocodigo.net
- http://www.picandocodigo.net/foro
URI con parámetros
^(http://)((\w+\.)?(\w+\.)?\w+\.(\w{2,3})(\.\w{2})?)((/(\w+/?)+(/?\w+)?((\.(\w{3,4})?))?)(\?(\w+=[\w\+\-]+)((&\w+=([\w\+\-]?)+)?)+)?)Análisis:
- ^(http://)((\w+\.)?(\w+\.)?\w+\.(\w{2,3})(\.\w{2})?)((/(\w+/?)+(/?\w+)?((\.(\w{3,4})?))?) : ídem anterior.
- (\?(\w+=[\w\+\-]+) : signo de interrogación (\?) seguido de una cadena de caracteres seguida del signo de igual(\w+=) seguido de una cadena de caracteres compuesta de 1 ó más ocurrencias de cualquier letra y/o los signos de + y - ([\w\+\-]+)
- ((&\w+=([\w\+\-]?)+)?)+)?) :1 o más ocurrencias de: signo separador de parámetros (&), una cadena de caracteres seguida del signo de igual (\w=) seguida de 0 ó 1 ocurrencia de una cadena de caracteres formada por cualquier letra y/o signos de + y - (([\w\+\-]?)+)
Casos de prueba:
- http://www.server.com.uy/index.html
- http://server.com.uy/contacto.htm
- http://mail.server.com.uy/contacto/send.php
- http://mail.server.com.uy/contacto/forms/scripts/send.php?m=value1&n=value2
- http://www.google.com/search
- http://www.google.com.uy/search?q=the+ninth+gate&hl=es
- http://www.google.com.uy/search?q=the+ninth+gate&meta=














