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:
| Cuantificador | Que podemos filtrar | Ejemplo |
|---|---|---|
| ? | algo que es opcional | Ejemplo ? |
| + | algo que puede tener uno o más | Ejemplo + |
| * | algo que puede tener cero o más | Ejemplo * |
| a{n} | algo que tenga exactamente "n" | Ejemplo {n} |
| a{n,} | algo que tenga "n" o más | Ejemplo {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:
| Bandera | Efecto |
|---|---|
| g | de forma global |
| m | multilinea |
| i | insensitivo, 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:
| Elemento | Filtra |
|---|---|
| . | 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.teamy 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]))$

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.



