¿Que son las expresiones regulares? (regex o regular expression)

4/Jun/2018 regex

Las Expresiones Regulares o RegEx (para abreviar) son patrones que se usan para buscar textos dentro de otros textos. Estos patrones pueden ser tan simples como una palabra, por ejemplo buscar si en una oración existe la palabra “Programa” o pueden ser tan complejos como lo desees, por ejemplo, para verificar si un texto es un email valido, que comienza con alguna letra, lleva una arroba en medio y finaliza con un punto y un dominio .com, .net, etc.

Los usos mas comunes que se le dan las expresiones regulares (regular expression en ingles.) son:

  • Validación de datos: Por ejemplo numero de teléfono, email, claves seguras, tarjeta de crédito, etc.
  • Buscar y reemplazar
  • Encontrar valores
  • Extraer o porciones de un texto.

Ahora que ya sabes que son las expresiones regulares, voy a mostrarte algunos ejemplos para que todo quede más claro, los ejemplos serán en JavaScript por que existen muchas paginas web en donde puedes probar y practicar en línea sin tener que agregar código adicional para ver cómo funcionan. Pero por supuesto lo que veremos funciona en cualquier lenguaje que desees como PHP, ABAP, C, etc.

Veamos algo sencillo, vamos a buscar si un email, pertenece a un dominio, por ejemplo codigonaranja.com

Entonces la expresión regular seria algo como esto:  .+@codigonaranja.com para probarla podemos ingresar al sitio regex101.com

Como probar Expresiones regulares

En el cuadro de texto 1, se coloca la expresión regular, en el cuadro 2, esta el texto en donde vamos a realizar la búsqueda, y en el cuadro 3 se muestra el resultado, como vemos encontró que en el texto de búsqueda si existe un correo electrónico con el dominio codigonaranja.com, ahora veamos paso a paso como es que funciona esta expresión regular:

Primero utilice un punto . esto significa que espera cualquier carácter (letras, números o símbolos) pero un solo . espera un solo carácter. Veamos cómo se vería la expresión regular si solo uso el . sin el signo + que agregue antes.

Regex ejemplo de como se usa el punto

Como vemos, solo encontró un carácter (la letra z que es la que esta junto a la @), entonces el signo + le dice a la expresión regular que el patrón que esta antes que él (a la izquierda) puede repetirse más de una vez.

Luego esta un texto que es el dominio que buscamos codigonaranja.com, pero aquí hay un problema, el dominio lleva un . y como vimos antes el . le dice que representa cualquier carácter, entonces tomaría como validos los dominios  codigonaranja-com y codigonaranjaTcom para evitar esto se usa un carácter de escape  \ antes del . esto hace que el . o cualquier otra comando de expresión regular sea ignorado y tratado como texto.

Lo sé, hasta ahora no se ve muy impresionante, esto pudo lograrse con un comando de búsqueda tradicional, asi que voy a mejorar un poco este código para que pueda encontrar un email con el dominio codigonaranja pero en sus versiones .com .net .org  etc. Cambiemos la regex por esta  .+@codigonaranja\.[a-z]+

Ejemplo de expresion regular

Como vemos con una sola expresión regular hemos encontrado el dominio codigonaranja en las versiones .com .net y .org

El cambio que hice fue sustituir com por [a-z] los signos [ y ] se usan para definir un rango, en este caso le dice que puede ir cualquier carácter de la a a la z y el signo + al final le dice que ese patrón se puede repetir más de una vez.

Como puedes ver las expresiones regulares pueden ser muy flexibles, puedes crear patrones tan sencillos o tan complejos como lo desees. Esta fue solo una introducción, en el siguiente articulo voy a mostrarte como crear expresiones regulares más complejas.



Ir a la barra de herramientas