¿Qué son las expresiones regulares?

Las expresiones regulares sirven para validaciones como las de correo electrónico, URLs, números de teléfono, contraseñas, etc. En este post te enseño como funcionan, además tendrás un ejemplo que te ayudará a escribir tu primera expresión regular.

Diseño web
Lectura de 8 minutos
25 ago. 2020
¿Qué son las expresiones regulares?

Las expresiones regulares te permiten filtrar textos, para encontrar coincidencias, comprobar la validez de fechas, documentos, contraseñas, reemplazar texto y demás. El problema es que no son intuitivas a primera vista, lo importante para empezar es conocer la sintaxis (el orden de como hacer).

Antes de empezar con la sintaxis, te recomiendo usar la esta herramienta: https://regex101.com/

Sintaxis

Alternación

Es una barra vertical que separa alternativas, por ejemplo:

alvaro | alexys

Con esto filtraremos alvaro y alexys dentro de un texto: Ver Ejemplo

Cuantificación

Este nos ayuda a filtrar ciertas frecuencias entre los más importantes tenemos:

CuantificadorQue podemos filtrarEjemplo
?algo que es opcionalEjemplo ?
+algo que puede tener uno o másEjemplo +
*algo que puede tener cero o másEjemplo *
a{n}algo que tenga exactamente "n"Ejemplo {n}
a{n,}algo que tenga "n" o másEjemplo {n,}
a{n,m}algo que tenga entre "n" o "m"Ejemplo {n,m}

En la siguiente imagen usamos el cuantificador *, que filtra la palabra "hola" en la que puede tener ninguna ó muchas "o"

Agrupación

La agrupación es lo más utilizado en las expresiones regulares, nos permite agrupar reglas y combinarlas por ejemplo: https://regex101.com/r/2AVOq1/9

Banderas

Las banderas nos permiten indicar, el impacto de la regla, entre las más importantes tenemos:

BanderaEfecto
gde forma global
mmultilinea
iinsensitivo, no importa las mayúsculas o minúsculas

Estas se pueden combinar sin problemas por ejemplo: en la siguiente regla le indicamos que filtre de forma g global m multilinea y i insensitivo sin que afecte las mayúsculas o minúsculas.

https://regex101.com/r/2AVOq1/10

Otros elementos importantes

En las expresiones regulares tenemos muchas más reglas que podemos usar:

ElementoFiltra
.cualquier caracter
!negación
\ caracteres especiales (\n, \t, \w)
[]clase de caracteres ([a-z])
^Inicio de texto (^hola) ó negar una clase de carácter ([^a-z])
$Final de un texto (^hola$)

Filtrar un Correo Electrónico

Generalmente las expresiones regulares nos ayudan a filtrar muchas cosas, por ejemplo para la validación de textos especiales, como un correo electrónico válido.

Debemos evitar lo siguiente:

  • Los puntos al principio, antes del arroba y final del correo .hola.@gmail.com.
  • Un espacio al principio o al medio de un correo hola @gmail.com

Pasos:

  • Iniciamos especificando un inicio y un final

    ^()$

  • Validamos el punto al principio ?!\. indica que no puede haber un punto al principio

    ^((?!\.))$

  • Ahora seguimos con las reglas, aceptar cualquier texto (\w) con - ,_ y . ( * se olviden del cuantificador puede haber nada o mucho texto)

    ^((?!\.)[\w-_.]*)$

  • Validamos que no haya un punto antes del @, lo hacemos con una clase de caracteres [] y lo negamos con [^\.]

    ^((?!\.)[\w-_.]*[^.])$

  • Ahora ponemos el @ y que tenga cualquier texto (\w+) el cuantificador + puede haber una letra o muchas

    ^((?!\.)[\w-_.]*[^.](@\w+))$

  • Casi terminando validaremos gmail.com, ed.team y subdominios especiales al final.

    ^((?!\.)[\w-_.]*[^.](@\w+)(\.\w+(\.\w+)))$

  • Finalmente evitar un . al final, por ejemplo: contacto@ed.team., de igual forma podemos usar una clase de caracteres [], negaremos el ., [^.] y para no tener problemas agregaremos \W, este carácter especial indica que no debería haber espacios al final.

    ^((?!\.)[\w-_.]*[^.](@\w+)(\.\w+(\.\w+)?[^.\W]))$

    EL RESULTADO FINAL

Y con esto nuestra expresión regular esta lista para usarse.

Espero que este artículo te haya ayudado a comprender las expresiones regulares. Ahora te toca practicar, te dejo esta infografía con las expresiones regulares básicas que debes conocer. Nos vemos en un siguiente artículo 👋.

#NoTeDetengas y continúa aprendiendo más del mundo de la programación con esta especialidad de 8 cursos 📚 https://ed.team/programacion. El primer curso es ¡GRATIS 🎁!

Aprenderás algoritmos, paradigmas de programación, patrones de diseño y mucho más.

Especialidad: Programación Desde Cero

Avatar

Jose Chirinos

@josechirinosVer perfil

Frontend Developer en EDteam, Javascript Lover #NoTeDetengas

Comentarios de los usuarios

Avatar
Jonathan Barahona

@jonathanbarahona

Fantástico grandiosa explicación.

Avatar
Daniel G-Society

@danielg-society

A detalle! Muy bien explicado. Bendiciones

Avatar
Galy Herrera

@galyherrera215

Hola, tienen algún curso de expresiones regulares ?

Recuerda iniciar sesión para comentar este articulo

Cursos recomendados

Programación desde cero (gratis - edición 2020)

Programación desde cero (gratis - edición 2020)

Avatar

Alvaro Felipe

5

4.8

HTML Desde Cero (2020)

HTML Desde Cero (2020)

Avatar

Alvaro Felipe

5

4.9

EDy flotante