Curso de Expresiones Regulares

Cómo extraer variables de URLs con regex

Curso de Expresiones Regulares

Contenido del curso

Expresiones Regulares en lenguajes de programación

Cómo extraer variables de URLs con regex

Resumen

Domina cómo extraer variables y valores del query GET con expresiones regulares de forma clara y práctica. Aquí verás cómo agrupar, capturar y transformar parámetros de una URL en información útil para depurar, formatear o integrar a tu código con seguridad y precisión.

¿Cómo extraer variables del query GET con expresiones regulares?

Una URL típica incluye: protocolo, dominio, ruta del script y el query GET tras el signo de interrogación. Ese query contiene pares nombre=valor separados por ampersand. El objetivo: capturar cada nombre de variable y su valor sin depender de si hay un ampersand final.

Pasos clave para el patrón:

  • Iniciar en signo de interrogación o ampersand. Es un punto de anclaje confiable.
  • Capturar el nombre de la variable como caracteres de palabra. Letras, dígitos y guion bajo.
  • Anclar con el signo igual. Es obligatorio en cada par.
  • Capturar el valor con una clase negada que evite el ampersand y el salto de línea. Así no fallará en el último parámetro.

Patrón sugerido (con case insensitive):

/[?&]([A-Za-z0-9_]+)=([^&\n]+)/i

Ideas clave que evitan errores:

  • No uses punto-asterisco para valores cuando existen separadores claros. Mejor una clase negada: [^&\n]+.
  • El signo de interrogación es reservado: escápalo cuando no esté en una clase de caracteres.
  • El último parámetro no siempre termina en ampersand: por eso se incluye el salto de línea en la clase negada.

¿Qué agrupaciones y clases capturan nombre y valor con precisión?

Las agrupaciones guardan subcoincidencias que luego se reutilizan. Así, el grupo 1 contiene el nombre de la variable y el grupo 2 su valor. En editores o lenguajes cambia la forma de referirlas: en algunos es $1, $2; en otros \1, \2; en varios lenguajes llega en un arreglo.

Detalles prácticos que marcan la diferencia:

  • Grupo 1: nombre de variable con [A-Za-z0-9_]+. Debe tener uno o más caracteres.
  • Igual obligatorio: actúa como ancla clara entre nombre y valor.
  • Grupo 2: valor con [^&\n]+. Acepta cualquier carácter excepto ampersand o salto de línea.
  • Parámetros por porcentaje: valores con codificación por porcentaje deben coincidir porque no se filtran, salvo el ampersand.
  • Formato y reemplazo: puedes reescribir cada match como “nombre = valor” para validar visualmente.

Ejemplo de reemplazo para formatear resultados (just for the lols):

  • Entrada: URL con muchos parámetros.
  • Búsqueda: el patrón de arriba.
  • Reemplazo: $1 = $2.
  • Salida: líneas legibles como S = fotografía, mode = search, model = blog.

¿Qué herramientas y lenguajes aplican este patrón en la práctica?

Este enfoque funciona al configurar handlers de request y al parsear parámetros en múltiples tecnologías. Editores como Atom y TextWrangler permiten buscar y reemplazar con grupos, aunque en Atom el conteo de matches puede no ser exacto. En PHP puedes recuperar los grupos en un arreglo; en Python llega como lista; en Pearl se exponen como $1, $2; y también se usará JavaScript para otros casos.

Buenas prácticas para tu flujo de trabajo:

  • Omitir dominio y ruta: céntrate en el query a partir de “?”.
  • Probar con Replace/Replace all: valida que cada par quede “nombre = valor”.
  • Mantener case insensitive si el contexto lo requiere.
  • Pensar en lenguaje natural antes de codificar: define qué sí y qué no debe coincidir.

Aplicaciones mencionadas que fortalecen tu criterio con regex:

  • Validación de correos y dominios.
  • Separación de queries complejos en pares nombre=valor.
  • Retos con nombres propios y escenarios de Geographic Information Services.
  • Preparación para integrar en PHP, JavaScript y Pearl. Muchos motores actuales siguen la interpretación popularizada por Pearl.

¿Te quedó alguna duda o quieres compartir tu patrón favorito para queries? Deja un comentario con tu ejemplo y el lenguaje donde lo aplicas.