Expresiones regulares 2

Para entrar a esta segunda parte pueden observar en Wikipedia en Inglés que también se pueden hacer uso de los caracteres POSIX como:

  • :alnum:        \w
  • :digit:           \d
  • :lower:         [a-z]
  • :upper:        [A-Z]
  • :alpha:        [a-zA-Z]
  • y otros...

Estos caracteres sólo pueden ser usados entre corchetes [] y son de gran utilidad para no esforzar a nuestra memoria y por supuesto no pueden ser utilizados en Framework .NET -ni siquiera en la versión 4, era evidente ya lo comprobé-.

Ahora veamos las agrupaciones alternativas, que por decirlo de alguna manera sirve para validar o verificar la coincidencia de un elemento en una lista, de esta manera:

/^([A]|[B]|[C])$/

Como pueden darse cuenta con esto pueden validar el ingreso de una letra sea A, B o C; un ejemplo más útil sería este:

/^(.+\.jpg|.+\.jpeg|.+\.png)$/

Con esta expresión regular se puede validar el ingreso de un archivo con extensión de imagen .jpg, .jpeg o .png. Pues esto es una agrupación alternativa una lista de elementos -que podrían ser expresiones regulares- que están agrupadas por paréntesis y separadas por pipas |.

Veamos ahora los usos que tiene el signo de interrogación de cierre ?, el más común es la coincidencia opcional:

/^Au?gusto$/

Aquí aceptará la coincidencia de las palabra 'Augusto' y 'Agusto', el signo de interrogación de cierre hará que el caracter anterior o los caracteres agrupados por corchetes a este sea(n) opcional(es), es decir exista o no dentro de la cadena.

Otra forma de usar este signo es junto a las agrupaciones alternativas, de la siguiente manera:

/^Señor(a|ita)?$/

De esta manera podremos aceptar la coincidencia opcional se las palabras 'Señor', 'Señora' y 'Señorita'.

Eso es todo, con las expresiones pueden hacer muchísimas cosas como validar:

  • Una dirección ftp o http o del protocolo que deseen.
  • Una dirección de correo electrónico.
  • La Url absoluta o relativa de un request.
  • Para tu archivo app.yaml de Google App Engine
  • El nombre de usuario en el registro de sus webs.
  • Números decimales, enteros con puntos flotantes.
  • Lo que deseen...

Ojalá busquen más cosas e intercambiemos conocimientos.

Otros enlaces de interés: