Guía para principiantes de expresiones regulares (regex)

Una expresión regular es un conjunto de caracteres que forman un patrón que se puede buscar en una cadena. Regex se puede utilizar para validación como para validar números de tarjetas de crédito, para buscar es decir, a través de coincidencias de texto complejas, y para reemplazo de texto coincidente con otra cuerda. También tiene una excelente compatibilidad con múltiples idiomas: apréndalo una vez y podrá usarlo en muchos lenguajes de programación.

He visto a pocas personas echar el primer vistazo a expresiones regulares e ignorarlas por completo. No los culpo; La sintaxis de regex es compleja y hará que muchos se encojan al igual que esos lenguajes de línea de comandos, solo que peor. Pero luego, cada cosa nueva da miedo y parece imposible de aprender al principio. Entonces, tomando prestadas las palabras de Horacio, diré esto; Comience, sea audaz y aventúrese a ser sabio.

30 herramientas y recursos útiles de expresiones regulares

30 herramientas y recursos útiles de expresiones regulares

Una expresión regular es un conjunto de caracteres que forman un patrón que se puede buscar en una cadena. Regex se puede utilizar para la validación, como para validar Leer más

Regex: una introducción

Regex tiene sus raíces en la neurociencia y las matemáticas y solo fue implementado en la programación en 1968 por Ken Thompson en el editor de texto QED para búsqueda de texto. Ahora es parte de muchos lenguajes de programación como Perl, Java, Python, Ruby y JavaScript.

Veamos algunos ejemplos de cómo funciona la expresión regular.

Usaré JavaScript en mis ejemplos. Ahora, para pasar el nivel de principiante, necesitas aprender todos los caracteres, clases, cuantificadores, modificadores y métodos utilizado en expresiones regulares. Aquí hay un enlace a la página de expresiones regulares de Mozilla Developer Network donde puede ver una tabla que contiene todo eso. También puede consultar la hoja de trucos al final de esta publicación con los caracteres más utilizados.

Veamos un ejemplo sencillo con una explicación. Esta es una expresión regular.

expresiones regulares

Esto es lo que buscará la expresión regular anterior en una línea, un carácter ‘B’ seguido de al menos uno de cualquier carácter entre (e incluyendo) ‘a’ a ‘z’, ‘A’ a ‘Z’ y números 0 a 9.

Aquí hay una muestra de coincidencias en una línea resaltada:


Cesta
bombilla,
B12
vitamina,
BaSO4
norte
antes de Cristo
compañía

La expresión regular anterior detendrá la búsqueda en
Cesta
y devolver una respuesta positiva. Eso es porque el modificador global ‘g‘ tiene que ser especificado si desea que la expresión regular busque todas las coincidencias posibles.

Ahora, veamos cómo usar esta expresión en JavaScript. El test el método va: si se encuentra una devolución de coincidencia truedemás false.


 var input = "your test string", regex = /B[a-zA-Zd]+/;
 if(!regex.test(input))
 alert('No match is found');
 else
 alert('A match is found');

Probemos con otro método: match devuelve las coincidencias encontradas en una matriz.


 var input = "your test string", 
 regex = /B[a-zA-Zd]+/g, 
 /*I've added the global modifier 'g' to the regex to get all the matches*/
 ary = input.match(regex); 
 if(ary===null)
 alert('No match is found');
 else
 alert('matches are: ' + ary.toString());

¿Qué hay de la cadena replace? Intentemos eso con expresiones regulares ahora.

 var input = "your test string", 
 regex = /B[a-zA-Zd]+/g;
 alert(input.replace(regex, "#"));

A continuación se muestra un codepen para que lo modifique. Haga clic en la pestaña «JavaScript» para ver el código JS.

Ejercicios de expresiones regulares

Para los ejercicios, puede buscar en Google «ejercicios de expresión regular» e intentar resolverlos. Esto es lo que puede esperar al intentar estos ejercicios, según los niveles de dificultad.

Básico

A mi poder validar una contraseña es suficiente para empezar. Por lo tanto, valide una contraseña de 8 a 16 caracteres alfanuméricos con su elección de caracteres especiales permitidos.

Intermedio

Aquí es donde debes practicar con más datos del mundo real y aprender algunos puntos más de expresiones regulares como mirar hacia adelante, mirar detrás de las afirmaciones y grupos coincidentes;

  • Valide códigos PIN, hexadecimales, fechas, ID de correo electrónico, punto flotante.
  • Reemplace cero final, espacios en blanco, un conjunto de palabras coincidentes
  • Extraer diferentes partes de una URL
Avanzado

Puede optimizar las soluciones de los ejercicios anteriores: la expresión regular más óptima para el correo electrónico tiene miles de caracteres, por lo que llévalo tan lejos como te sientas cómodo y eso es suficiente. También puedes probar:

  • Analizar HTML o XML (aunque en el mundo real no se recomienda hacerlo porque el uso de expresiones regulares para analizar lenguaje no regular como HTML nunca lo hará infalible. Además, el análisis de XML es una tarea difícil, más adecuada para usuarios de nivel avanzado)
  • Sustitución de etiquetas
  • Eliminación de comentarios (excepto los comentarios condicionales de IE)

Herramientas de expresiones regulares

Herramientas para visualizar expresiones regulares son una de las mejores cosas que hay para mí. Si alguna vez se encuentra con una expresión regular larga y compleja, simplemente cópiela y péguela en una de esas herramientas y podrá ver el flujo con claridad. Además de eso, hay muchas herramientas que puedes usar para jugar con el código regex. También muestran ejemplos y hojas de trucos junto con funciones compartidas.

  • Debuggex – Dibuja un diagrama de expresiones regulares según su entrada y puede compartir rápidamente StackOverflow desde allí.
  • RegExr – Puedes probar tu expresión regular con esta. También tiene referencias, una hoja de trucos y ejemplos para ayudarte.

Hoja de referencia de expresiones regulares

Simbólico Definición
[abc] Cualquier carácter único a, b o c
[^abc] Cualquier carácter que no sea a, b o c
[a-z] Carácter entre (incluyendo) a a z
[^a-z] Carácter excepto de la a a la z
[A-Z] Carácter entre (incluido) A a Z
. Cualquier personaje individual
s Cualquier carácter de espacio en blanco
S Cualquier carácter que no sea un espacio en blanco
d Cualquier dígito del 0 al 9
D Cualquier no dígito
w Cualquier carácter de palabra (letra, número y guión bajo)
W Cualquier carácter que no sea una palabra
(…) Captura todo lo encerrado
(a|b) Coincide con a o b
¿a? El personaje a está ausente o presente una vez
a* El personaje a está ausente o presente más veces
un+ El carácter a está presente una o más veces
un{3} 3 ocurrencias del carácter a consecutivamente
un{3,} 3 o más ocurrencias del carácter a consecutivamente
un{3,6} 3 a 6 apariciones del carácter a consecutivamente
^ Comienzo de cadena
ps fin de cadena
b Un límite de palabra. Si un carácter es el último o el primer carácter de una palabra o si un carácter está entre una palabra o un carácter que no es una palabra
B Límite sin palabra

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio