1
const documentoMarkdown = `
# Recursos de Aprendizaje Kilopolis
- Visita nuestra [Academia Oficial](https://academia.kilopolis.com) para tutoriales.
- Revisa el [Manual de JavaScript](https://academia.kilopolis.com/manuales/javascript).
- Consulta el [Repositorio GitHub](https://github.com/solucionaticos/kilopolis-core).
`;
// Patrón con grupos nombrados (?<texto>...) y (?<url>...) con bandera /g obligatoria
const patronMarkdown = /\[(?<texto>[^\]]+)\]\((?<url>https?:\/\/[^\s)]+)\)/g;
console.log("--- 1. Iteración con for...of y matchAll() ---");
for (const match of documentoMarkdown.matchAll(patronMarkdown)) {
const { texto, url } = match.groups;
console.log(`Encontrado: "${texto}" => ${url} (en posición ${match.index})`);
}
console.log("\n--- 2. Conversión a Array de Objetos con Array.from() ---");
const enlacesEstructurados = Array.from(
documentoMarkdown.matchAll(patronMarkdown),
match => ({
titulo: match.groups.texto,
href: match.groups.url,
posicion: match.index
})
);
console.log(enlacesEstructurados);
Haz clic para editar este código